RuoYI 框架 异步任务管理

核心目标代码

AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage()))

 

代码解读

  1、异步任务管理类AsyncManager获取Bean对象

  2、线程池配置类ThreadPoolConfig创建线程池Bean对象

  3、异步工厂AsyncFactory创建可执行任务TimerTask

  4、提交任务给线程池

   以下的内容从JDK中粘贴翻译
 // schedule:延时设定时间(initialDelay)后只执行一次任务。
 public ScheduledFuture<?> schedule(Runnable command,long delay, TimeUnit unit);
 // schedule:延时设定时间(initialDelay)后只执行一次任务。
 public <V> ScheduledFuture<V> schedule(Callable<V> callable,long delay, TimeUnit unit);
 //延时设定时间(initialDelay)后执行第一次任务,每隔时间间隔(period)再次执行任务。
 public ScheduledFuture<?> scheduleAtFixedRate(Runnable command,long initialDelay,long period, TimeUnit unit);
 //延时设定时间(initialDelay)后执行第一次任务,随后每次任务执行完后延迟设定时间(delay)再次执行任务。
 public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command,long initialDelay,long delay,TimeUnit unit);                                

  5、获取线程池实例执行任务

 

 

参考文章

【1】使用 Lambda 表达式来创建 TimerTask

【2】ScheduledExecutorService

posted @ 2024-01-26 15:00  先娶国王后取经  阅读(207)  评论(0编辑  收藏  举报