14

我们在集群环境中使用石英调度器(集群中有两个节点,指向一个 Oracle 数据库)。目前我们有两个工作,几乎每隔一小时运行一次。

我们为石英作业提供了一个单独的数据库模式。我们注意到的是,quartz 每 15 秒检查一次数据库(clusterCheckinInterval的默认值)。

我们不喜欢这样,喜欢减少它的频率。我们想到的是给出 1 分钟的频率,但大多数示例配置都将clusterCheckinInterval设为20000

有人可以为 clusterCheckinInterval 推荐一个合适的值吗?

来自石英文档:

org.quartz.jobStore.clusterCheckinInterval

Set the frequency (in milliseconds) at which this instance "checks-in"* with the other instances of the cluster. Affects the quickness of detecting failed instances.
4

1 回答 1

26

在 Quartz 集群中,它clusterCheckinInterval告诉您集群对故障转移的响应程度(考虑 Quartz 作业)。间隔越小,您的应用程序响应速度就越快。实际上,集群节点使用此值来检查是否有可恢复的作业在损坏的节点上运行。如果是,Quartz 会尝试重新运行它们。

一般来说,默认值就足够了,但您必须考虑作业的频率以及错过作业运行可能导致的影响。

如果您有许多必须每秒运行的作业,那么您必须将间隔设置为1000(以毫秒为单位)。

如果您有每秒运行的作业,但始终运行它们并不重要,那么 5-15 秒就足够了(取决于系统的容错能力)。

如果您有每天运行几次的长达一小时的作业,您甚至可以将间隔提高到 60 秒。

我的观点是,我不会将每分钟 20-30 个数据库请求视为“负载”,因此我会将其设置为 2 或 3 秒(20003000毫秒)。

于 2013-02-19T09:07:47.667 回答