【发布时间】:2012-02-02 01:13:23
【问题描述】:
我们有一堆配置为在集群环境中运行的石英作业,并且在真正的集群(两台 WAS 机器)上一切似乎都运行良好。
DEV环境我们还是用的
org.quartz.jobStore.isClustered = true
虽然我们只使用一台机器。但是我们经常但并不总是遇到以下异常:
org.quartz.JobPersistenceException:
Couldn't store trigger 'DEFAULT.MT_6uclr3emepk6p' for '<group>.<name>'
job:The job (<group>.<name>) referenced by the trigger does not exist.
我们将 DEV 环境的设置更改为
org.quartz.jobStore.isClustered = false
这似乎让问题消失了。
所以问题是:
- 当您实际上不使用集群时,设置
org.quartz.jobStore.isClustered = true是否有问题 - 如果是,为什么?
- 如果不是,原始问题的原因可能是什么?
更新:关于何时发生错误的说明:
这是设置作业的 sn-p。
JobKey JOBKEY = new JobKey("Name", "group");
newTrigger().withIdentity("TriggerName", "group").forJob(
JOBKEY).build();
JobDetail job = newJob(NameJob.class).withIdentity(
JOBKEY)
.storeDurably().build();
scheduler.addJob(job, false);
这个 sn-p 应该触发一个作业执行
scheduler.triggerJob(JOBKEY);
【问题讨论】:
-
您使用的是哪个版本的 Quartz?在为现有作业创建新触发器时,您何时会收到这些错误?或者创建一个新的工作和触发器?或者可能正在更新?
-
quartz-scheduler 是 2.0.0 版
标签: java quartz-scheduler cluster-computing