Jdbc 将作业从非群集配置的quartz调度程序实例调度到群集quartz1.8.6

Jdbc 将作业从非群集配置的quartz调度程序实例调度到群集quartz1.8.6,jdbc,locking,mixing,contention,quartz,Jdbc,Locking,Mixing,Contention,Quartz,我在集群模式下使用quartz 1.8.6,有4个实例。现在,我观察到表QRTZ_锁上的高争用。我的应用程序还为在线客户提供Web服务。此Web服务还执行新作业的调度。现在,我在这些Web服务上看到超时异常,因为当他们想要安排新作业时,他们等待的时间太长,无法获得QRTZ_锁表上的锁。对我来说,为Web服务建立100%可靠的操作非常重要(比quartz作业操作更重要)。是否可以仅在1个实例上启动quartz job runner,并使用org.quartz.jobStore.isClustere

我在集群模式下使用quartz 1.8.6,有4个实例。现在,我观察到表QRTZ_锁上的高争用。我的应用程序还为在线客户提供Web服务。此Web服务还执行新作业的调度。现在,我在这些Web服务上看到超时异常,因为当他们想要安排新作业时,他们等待的时间太长,无法获得QRTZ_锁表上的锁。对我来说,为Web服务建立100%可靠的操作非常重要(比quartz作业操作更重要)。是否可以仅在1个实例上启动quartz job runner,并使用org.quartz.jobStore.isClustered=false配置其他3个实例,以允许它们执行调度而不锁定QRTZ_锁


更新:事实上,如果我计划使用job runner只运行一个实例,而所有其他实例都只允许添加新作业,那么这将不再是一个集群。所以,实际的问题是:是否可以对所有4个实例配置org.quartz.jobStore.isClustered=false,只让1个实例运行作业,但允许所有4个实例将新作业调度到同一jdbc存储?

尝试打开批处理模式,并将最大批处理计数设置为quartz调度程序可用的线程数