我在集群模式下使用 4 个实例的石英 1.8.6。现在,我观察到表 QRTZ_LOCKS 的争用很高。我的应用程序还为在线客户提供网络服务。该网络服务还可以安排新作业。现在,我在这些 web 服务上看到了超时异常,因为当他们想要安排新作业时,他们等待太久才能获得 QRTZ_LOCKS 表的锁定。对我来说,为 web 服务建立 100% 可靠的操作很重要(比石英作业操作更重要)。是否可以仅在 1 个实例上启动石英作业运行器,而其他 3 个实例配置为 org.quartz.jobStore.isClustered=false 以允许它们执行调度而不锁定 QRTZ_LOCKS?
更新:实际上,如果我打算只使用作业运行器运行一个实例,而所有其他实例只允许添加新作业,那么这将不再是一个集群。所以,实际的问题是:是否可以为所有 4 个实例配置 org.quartz.jobStore.isClustered=false,只让 1 个实例运行作业,但允许所有 4 个实例将新作业调度到同一个 jdbc 存储?