Как я могу гарантировать, что ThreadPoolTaskScheduler выполняет только одну задачу за раз? - PullRequest
0 голосов
/ 16 января 2019

У меня есть Планировщик EJB для задач:

@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

Некоторые большие задачи, которые занимают часы времени, а другие выполняются всего за несколько секунд. Итак, ситуация такова, что быстрые задачи не могут быть запланированы, когда медленные выполняются, я беспокоюсь, пока выполняется большая и медленная задача. Как я могу гарантировать, что ни одна из других задач не будет запланирована? Достаточно просто ограничить пул?

...