14

クラスター化された環境で Quartz スケジューラーを使用しています (クラスター内の 2 つのノードで、単一の Oracle データベースを指しています)。現在、ほぼ 1 時間ごとに実行される2 つのジョブがあります。

Quartz ジョブ用に別のデータベース スキーマがあります。私たちが気づいたことは、クォーツが 15 秒ごとにデータベースをチェックすることです ( clusterCheckinIntervalのデフォルト値)。

私たちはこれが好きではなく、頻度を減らしたいと考えています。私たちが念頭に置いているのは、1 分の頻度を指定することですが、ほとんどの構成例ではclusterCheckinInterval20000として指定しています。

clusterCheckinInterval の適切な値を推奨してください。

Quartz のドキュメントから:

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 秒で十分です (システムのフォールト トレランスによって異なります)。

1 日に数回実行される 1 時間の実行ジョブがある場合は、間隔を 60 秒まで上げることができます。

私の意見では、1 分あたり 20 ~ 30 件のデータベース リクエストを「負荷」とは見なさないため、2 または 3 秒 (2000または3000ミリ秒) に設定します。

于 2013-02-19T09:07:47.667 に答える