5

私のアプリケーションでは、バックグラウンド タスクを定期的に実行する必要があります (これは Quartz で簡単に実行できます。つまり、特定のジョブを特定の時間に定期的に実行するようにスケジュールします)。

でも、もう少しコントロールしたい。特に、次のことを行う必要があります。

  1. スケジュールされた時間に実行されなかったタスクをシステムに再実行させます (つまり、サーバーがダウンしていたため、タスクは実行されませんでした。このような状況では、「遅れた」タスクをできるだけ早く実行したいと考えています)。
  2. タスクを簡単に制御できると便利です。つまり、オンデマンドでタスクを実行したり、特定のタスクが最後にいつ実行されたかを確認したり、特定のタスクを別の時間に実行するように再スケジュールしたりできます。

上記の点はSpring Batch Adminで達成できるように思えますが、私はまだこの分野での経験があまりありません. また、Spring Batch がスケジューリング ツールではないという記事を多数目にしたので、ジョブに適したツールがここにあることに疑問を抱くようになりました。

私の質問は、Spring Batch Adminで上記を達成できますか? または、おそらく Quartz で十分ですが、上記を行うには設定が必要ですか? それとも両方必要ですか?または、他の何か?

どうもありがとう:) ピーター

4

1 に答える 1

5

スケジュールされた時間に実行されなかったタスクをシステムに再実行させる

Quartzのこの機能はMisfire Instructionsと呼ばれ、必要なことを正確に実行しますが、はるかに柔軟です。必要なのは を定義することだけですJDBCJobStore

タスクを簡単に制御できると便利です。つまり、オンデマンドでタスクを実行したり、特定のタスクが最後にいつ実行されたかを確認したり、特定のタスクを別の時間に実行するように再スケジュールしたりできます。

Quartz JMXを使用して、さまざまな情報 (前回および次回の実行時間など) にアクセスしたり、Quartz データベース テーブルに直接クエリを実行したりできます。上記の入力には、無料および商用の管理ツール basex もあります。そこで手動でジョブを実行することもできると思います。

Spring Batchは Quartz と統合できますが、置き換えはできません。

于 2011-12-08T17:12:54.797 に答える