【发布时间】:2020-09-07 08:32:21
【问题描述】:
我有一个使用 Quartz 作为作业调度程序的应用程序。有两种情况
- 安排将来执行的作业。
- 每 10 秒运行一次的 cron 作业。
我运行我的应用程序的两个实例。两者都设置为集群模式,并且都将 instanceId 设置为“AUTO”。
这些是我的观察:
应用程序的两个实例都启动并连接到数据库。两者都报告它们已成功集群并连接到数据库。
当我根据场景 1 安排作业时,在作业执行时只有一个应用程序执行作业。
场景 2,即每 10 秒执行一次的 cron 作业,同时由两个应用程序执行。
我查看了数据库中的 qrtz 表。 cron 作业只有一个作业和一个触发器。
我还在 qrtz db“计划状态”表中观察到应用程序的两个实例都在持续签入。
这是我设置 cron 作业的方法:
val myCronJob = newJob(MyCronJob::class.java)
.withIdentity("cronjob", "cronJobGroup")
.build()
val trigger = newTrigger()
.withIdentity("cronjob", "cronJobGroup")
.startNow()
.withSchedule(simpleSchedule()
.withMisfireHandlingInstructionIgnoreMisfires()
.withIntervalInSeconds(10)
.repeatForever())
.build()
任何帮助或指导将不胜感激!
【问题讨论】:
-
您的代码 sn-p 太小,无法提供帮助。请提供可重现的工作示例
标签: java cron cluster-computing quartz-scheduler