延迟执行定时任务

@Component
public class ScheduledThreadPool {

    @Bean
    public ScheduledThreadPoolExecutor scheduledThreadPoolExecutor() {
        ThreadFactory threadFactory = ThreadFactoryBuilder.create().setNamePrefix("scheduled-threadPool-%d").build();
        ThreadPoolExecutor.CallerRunsPolicy callerRunsPolicy = new ThreadPoolExecutor.CallerRunsPolicy();

        return new ScheduledThreadPoolExecutor(Runtime.getRuntime().availableProcessors() * 2,
                threadFactory, callerRunsPolicy);
    }
}
//执行定时任务线程定义
@AllArgsConstructor @ToString @Setter
public class CommitTask implements Runnable {   //需要的参数 private String aicloudId; private String subCapacity; private CommitService commitService; @Override public void run() { commitService.commit(aicloudId, subCapacity); } }
    @Autowired
    private ScheduledThreadPoolExecutor scheduledThreadPoolExecutor;

  //立即执行
  CommitTask commitTask = new CommitTask(aicloudId, serviceCode, commitService);
   scheduledThreadPoolExecutor.execute(commitTask);

  //延迟执行
  CommitTask commitTask = new CommitTask(aicloudId, serviceCode, commitService);
   scheduledThreadPoolExecutor.schedule(commitTask, limitMinute, TimeUnit.MINUTES);

 

posted @ 2021-08-27 14:15  meow_world  阅读(188)  评论(1)    收藏  举报