Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring中的集群@schedule注释_Java_Spring_Quartz Scheduler - Fatal编程技术网

Java Spring中的集群@schedule注释

Java Spring中的集群@schedule注释,java,spring,quartz-scheduler,Java,Spring,Quartz Scheduler,我的代码库目前使用类似于quartz.properties的crontab文件来定义SpringWeb应用程序中的一系列作业。我们的quartz配置当前看起来像: org.quartz.scheduler.instanceId=AUTO org.quartz.scheduler.jmx.export=true org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCou

我的代码库目前使用类似于
quartz.properties的crontab文件来定义SpringWeb应用程序中的一系列作业。我们的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
注释,我真的很想利用它。在很多情况下,我们有一些基本上包装了服务的单个方法的JobBean——注释似乎会删除很多样板文件,从而使我们的代码更加清晰

然而,我不知道如何才能从Spring的日程安排中获得与我们现在从vanilla quartz获得的相同的保证。也就是说,将
isClustered=true
和作业存储实现设置为使用备份数据库,使我们能够保证每个集群只运行一次作业,而不会执行诸如声明主节点和检查主机名之类的不愉快的操作,这对我们来说甚至不是一个很好的保证,因为我们的节点数量可变。尽管如此,这似乎是可能的——Spring的调度显然非常了解Quartz,我不得不想象有一种方法可以实现
TaskScheduler
,从而提供这些保证