2012-11-29 4 views
5

私のアプリケーションでは、Quartz Schedulerフレームワークを使用します。クォーツスケジューラ - RAMとJDBC間の差分は何ですか?

1)RAMのジョブストア

2)JDBCジョブストア:私はJobStoresの二つのタイプに出くわしました。

どの場合、どの職場を使用する必要があるのでしょうか。そして、それらの間の賛否両論は何ですか?

これについての考えは本当に役に立ちます。私はそれを感謝します。

答えて

5

JDBCジョブストアは、このように、データベース内に発射トリガーおよびジョブに関する情報を保存します。

  • トリガーを発射すると仮定したときにアプリケーションがダウンした場合には解雇を失うことはありません(これは、選択された失火の命令に依存)

  • は、各ノードが同じデータベースを使用して、あなたのスケジューラを、クラスタ化でき
  • JDBCジョブストアはかなり遅いです

RAMジョブストアは、クラスタリングされていないアプリケーションでのみ使用できます。また、はるかに高速です。 RAMジョブストアでQuartzを使用する場合は、Quartzはまったく必要ありません。 SpringとEJBの両方は、時間とCRONの両方に基づいて定期的なジョブを実行するメカニズムを提供します。

+0

したがって、ジョブの詳細をxmlファイルに保存できるのであれば、RAMJobStoreを使うことができます。そうですか? – Narendra

+0

@ Narendra:起動時にすべてのジョブを単に再スケジューリングした場合は、yesを指定します。しかし、トリガが1時間ごとに実行されると想定されていても、アプリケーションが3時間停止した場合、これらの3回の起動はRAMストアで失われることに注意してください。 –

+0

私にお知らせいただきありがとうございます。今私はそれを理解する。 – Narendra

3

RAMジョブストアは非常に高速ですが、非常に揮発性です。ジョブはサーバーの再起動後も存続しません。

JDBCジョブストアは少し遅くなっていますが、ジョブは永続ストア(データベース)にあるため、再起動後も存続します。

したがって、短期間のジョブスケジュールしかなく、サーバーの再起動時またはアプリケーションの再デプロイ時に失われても問題ない場合は、RAMジョブストアを使用できます。

ジョブをシャットダウン/再起動しても確実に保持する必要がある場合は、JDBCジョブストアを使用する必要があります。

関連する問題