我是quartz scheduling的新手,因此我读了很多关于在集群环境中如何仅运行一个作业的文章,因为quartz具有以下特性:
spring.scheduler.instancename-调度程序
spring.scheduler.instanceid-自动
spring.scheduler.jobstoreclass-xyz
spring.scheduler.jobstoredriveredelegateclass-xyz
spring.scheduler.jobstoreisclustered-true
我的理解是:在数据库级别防止只运行一个作业时运行多个作业。数据库根据instanceid和instancename确定作业是否已在运行。如果不是,则到达数据库的第一个触发器将触发作业。
但是,当我们只连接到一个数据库节点或一个数据库数据中心(dc)时,这是有意义的。
如何确保在以下场景中仅运行一个作业:
4个运行在dc1上的quartz调度程序连接到dc1数据库。4个运行在dc2上的石英调度器连接到dc2数据库。请注意,dc1数据库和dc2数据库将同步(几毫秒后)。
请让我知道。提前谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!