2015-11-04 183 views
0

我正在使用类 https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/TaskScheduler.html 来管理某些任务的定期执行。 我有一组独立的任务必须定期执行(同一个数据库上运行) 什么我实际上做的是为每个任务每个独立任务的唯一实例TaskScheduler vs实例

TaskScheduler scheduler = new ThreadPoolTaskScheduler(); 
    ((ThreadPoolTaskScheduler)scheduler).afterPropertiesSet(); 
scheduler.schedule(new task1(), new CronTrigger("* * */2 * * *")); 
..... 
TaskScheduler scheduler2 = new ThreadPoolTaskScheduler(); 
    ((ThreadPoolTaskScheduler)scheduler2).afterPropertiesSet(); 
scheduler2.schedule(new task2(), new CronTrigger("* * */10 * * *"));  

我想,如果只是为了更好地理解创建一个新的TaskScheduler是创建一个TaskScheduler的独特实例,并用它来安排所有的任务,或者没有太大的优势。 在这种情况下,任务是不同的,这个池的兴趣是什么。

回答

0

总的来说它是一样的。但是你必须有一些考虑。

如果您有不同类型的任务,最好将它们分组到不同的调度程序中。也许你可以停止某种类型的任务,让他们在不同的调度程序中让你这样做,而不会影响其他任务。

如果您有很多任务,那么最好让它们在不同的调度程序中以这种方式调度程序可以以更简单的方式管理它们。