Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
Spring 使用多个实例中断quartz中的作业_Spring_Quartz Scheduler - Fatal编程技术网

Spring 使用多个实例中断quartz中的作业

Spring 使用多个实例中断quartz中的作业,spring,quartz-scheduler,Spring,Quartz Scheduler,我有5个在集群模式下使用quartz的应用程序实例,它们都运行quartz调度程序。(使用postgresql) 因此,我有一个作业,它启动并执行一些操作,如果需要,用新的计划时间更新自身,或者删除自身。(一个作业只能包含一个触发器。) 应用程序有一个UI界面,允许用户取消作业 从UI发送中断命令时 如果作业当前不工作;我可以暂停工作或取消 如果此时我的作业正在工作,如何使用正确的实例停止作业并获取作业的当前状态?基本上,我想在那个时刻捕捉并保存那个时刻的数据,那个用户实际上是那个时刻 sche

我有5个在集群模式下使用quartz的应用程序实例,它们都运行quartz调度程序。(使用postgresql)

因此,我有一个作业,它启动并执行一些操作,如果需要,用新的计划时间更新自身,或者删除自身。(一个作业只能包含一个触发器。)

应用程序有一个UI界面,允许用户取消作业

从UI发送中断命令时

如果作业当前不工作;我可以暂停工作或取消

如果此时我的作业正在工作,如何使用正确的实例停止作业并获取作业的当前状态?基本上,我想在那个时刻捕捉并保存那个时刻的数据,那个用户实际上是那个时刻

scheduler.interrupt(jobKey)是否会中断正确实现InterruptableJob的作业

是否scheduler.interrupt()确切地知道当前应该运行作业的实例,并找到正确的实例并获得作业的正确状态


您能纠正我吗,或者我应该使用哪种方法?

quartz中的中断方法实现和getCurrentlyExecutingJobs()不支持群集

这意味着该方法必须在执行该作业的实例上运行,换句话说,只有在当前实例中运行的具有指定作业键的作业才会中断

中断请求可以广播到quartz的所有运行实例,以取消运行作业的所有实例

发件人:

此方法不支持群集。也就是说,它只会中断 当前在中执行的已标识可中断作业的实例 此调度程序实例,而不是整个集群

org.quartz.jobStore.isClustered:true
org.quartz.scheduler.instanceName: myInstanceName
org.quartz.scheduler.instanceId: AUTO