0

我在集群模式下使用 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 存储?

4

1 回答 1

0

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

http://www.ebaytechblog.com/2016/01/14/performance-tuning-on-quartz-scheduler/

于 2017-02-02T06:38:10.693 回答