石英集群作业 - 多台主机 - 并行启动
Quartz Clustered job - multiple hosts - Parallel Startup
有没有人尝试在多台机器上并行启动 Quartz Job 应用程序 运行?
我在多台机器上运行的应用程序中创建了 Quartz Clustered 作业。
当我在所有主机中依次启动应用程序时,Quartz 工作正常。但是,当我并行启动应用程序时,出现了几种不同类型的错误。
如:
作业和触发器注册失败:null
org.quartz.ObjectAlreadyExistsException: 无法存储名称为 'triggerName' 组为 'JOB_GROUP' 的触发器,因为已经存在具有此标识的触发器
ORA-02292: 违反完整性约束 (QUARTZ_CRON_TRIG_TO_TRIG_FK) - 找到子记录
有没有人遇到过这个问题并解决了?
能否分享一下您对这个话题的看法?
这个问题来了,因为我创建了具有以下属性的 SchedulerFactoryBean。
-- SchedulerFactoryBean.setOverwirteExistingJobs(true)
在并行启动所有实例时,所有实例都试图删除 Quartz_JOB_DETAILS 和 Quartz_TRIGGERS table 值。以上述错误结束。
但是,一旦我使用默认值 "overwriteExisitingJobs is false"。这个问题已经消失了。
我面临的唯一问题是,每次更改 cron 触发器值时,我都会从数据库中删除 JOB 信息,它将在启动第一个调度程序实例时重新创建。
delete from QRTZ_CRON_TRIGGERS;
delete from QRTZ_TRIGGERS;
delete from QRTZ_JOB_DETAILS;
delete from QRTZ_LOCKS;
commit;
有没有人尝试在多台机器上并行启动 Quartz Job 应用程序 运行?
我在多台机器上运行的应用程序中创建了 Quartz Clustered 作业。 当我在所有主机中依次启动应用程序时,Quartz 工作正常。但是,当我并行启动应用程序时,出现了几种不同类型的错误。
如:
作业和触发器注册失败:null org.quartz.ObjectAlreadyExistsException: 无法存储名称为 'triggerName' 组为 'JOB_GROUP' 的触发器,因为已经存在具有此标识的触发器
ORA-02292: 违反完整性约束 (QUARTZ_CRON_TRIG_TO_TRIG_FK) - 找到子记录
有没有人遇到过这个问题并解决了? 能否分享一下您对这个话题的看法?
这个问题来了,因为我创建了具有以下属性的 SchedulerFactoryBean。
-- SchedulerFactoryBean.setOverwirteExistingJobs(true)
在并行启动所有实例时,所有实例都试图删除 Quartz_JOB_DETAILS 和 Quartz_TRIGGERS table 值。以上述错误结束。
但是,一旦我使用默认值 "overwriteExisitingJobs is false"。这个问题已经消失了。
我面临的唯一问题是,每次更改 cron 触发器值时,我都会从数据库中删除 JOB 信息,它将在启动第一个调度程序实例时重新创建。
delete from QRTZ_CRON_TRIGGERS;
delete from QRTZ_TRIGGERS;
delete from QRTZ_JOB_DETAILS;
delete from QRTZ_LOCKS;
commit;