2013-10-09 134 views
6

石英jobDetail requestRecovery

JobDetail.requestsRecovery財産状態のドキュメントは、「回復」または「フェイルオーバー」の状況が発生した場合、ジョブは を再実行する必要があるかどうかをスケジューラに指示します。

ここで、「回復」状況または「フェイルオーバー」状況とは何ですか?

どう違うのですか?

ジョブの実行中にJVMがクラッシュした場合、または例外のためにジョブの実行が失敗した場合にもリカバリが行われますか?

答えて

6

A「復旧状況は、」一般的な用語は、回復状況の一種で、「フェールオーバー」です。

フェイルオーバーは、一般的に冗長性(クラスタリングなど)で使用されるフォールトトレランスシステムで使用されるプロセスです。クラスター化に使用される場合、Quartz use failoverが使用されます。詳細クォーツの「ノード」が存在します。 documentationを引用

フェイルオーバノードのいずれかが1つ以上のジョブを実行している最中にしながら失敗したときに発生。ノードに障害が発生すると、他のノードが状態を検出し、障害ノード内で進行中のデータベース内のジョブを識別します。 (JobDetailの "requests recovery"プロパティを持つ)リカバリ対象としてマークされたジョブは、残りのノードによって再実行されます。

回復状況は「ハード・シャットダウン」(それがクラッシュ内で実行されて、またはマシンがシャットダウンされ、すなわちプロセス)を生成するすべての状況です。


はあなたの2番目の質問に答えるために:JVMは、ジョブの実行中にクラッシュした場合クォーツは、ジョブを回復する>

  • (クラッシュリカバリの状況があるので)

    例外のためジョブの実行が失敗した場合> Quartzはジョブを回復しません

    は(例外はハードシャットダウンではありませんので、失火が代わりにスローされます)

あなたの仕事のための回復を有効にするthisの回答を参照してください。

関連する問題