如何保证ThreadPoolTask​​Scheduler一次只执行一项任务?

时间:2019-01-16 16:03:44

标签: java spring spring-boot spring-scheduled

我有一个用于任务的Scheduler Bean,如下所示:

@Bean
public TaskScheduler poolScheduler() {
    ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
    scheduler.setThreadNamePrefix("sumarizacao_tasks_scheduler");
    scheduler.setPoolSize(1);
    scheduler.initialize();
    return scheduler;
}

我计划了不同的任务。如下:

scheduler.schedule(quickTask, new CronTrigger("0 * * * * ?")); // each minute
scheduler.schedule(slowTask, new CronTrigger("0 0 23 * * ?")); // once a day

一些大的任务需要花费数小时的时间,而其他的任务只需几秒钟即可完成。因此,情况是,慢速任务正在运行时无法安排快速任务,我担心的是,大型又慢速任务正在运行时,如何保证没有其他任务可以调度?仅仅限制池就足够了吗?

0 个答案:

没有答案