Spring中的集群@schedule注释

时间:2015-07-30 14:00:15

标签: java spring quartz-scheduler

我的代码库目前使用类似crontab的quartz.properties文件来定义Spring Web应用程序中的一系列作业。我们的quartz配置目前看起来像:

org.quartz.scheduler.instanceId=AUTO
org.quartz.scheduler.jmx.export=true

org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=20

org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.misfireThreshold=6000000
org.quartz.jobStore.isClustered=true
org.quartz.jobStore.dataSource=dataSourceConnectionProvider

我最近迷恋于Spring的@scheduled注释,并且非常想利用它。有很多实例我们有一些基本上包含一个服务方法的作业bean - 注释看起来像是删除了很多样板,因此我们的代码更加清晰。

然而,我无法弄清楚如何从Spring的调度中获得与我们现在从香草石英相同的保证。也就是说,设置isClustered=true和作业存储实现以使用支持数据库使我们能够保证我们的作业每个集群运行一次,而不会做出令人不愉快的事情,例如声明主节点和检查主机名 - 这甚至不是对我们来说是个很好的保证,因为我们有不同数量的节点。尽管如此,它似乎应该是可能的 - Spring的调度显然非常了解Quartz,我必须想象有一种方法可以实现提供这些保证的TaskScheduler

0 个答案:

没有答案