2011-12-08 12 views
3

私のアプリケーションでは、定期的にバックグラウンドタスクを実行する必要があります(Quartzで簡単に行うことができます。つまり、特定のジョブを定期的に実行するようにスケジュールします)。Javaで高度なジョブスケジューリングに使用するフレームワークは何ですか?

しかし、もう少しコントロールしたいと思います。特に、私のようにする必要があります

  1. (つまり、サーバーがダウンしていたし、このためのタスクは、私がしたいような状況で実行されなかったそのスケジュールされた時刻に実行されなかったタスクを再実行し、システムを持っています。
  2. タスクを必要に応じて実行するか、または特定のタスクが最後に実行されたか、または特定のタスクが別の時間に実行されるように再スケジューリングするかを確認するのは簡単です。

上記の点はSpring Batch Adminで達成できると思いますが、まだこの分野で多くの経験はありません。また、私は、Spring Batchがスケジューリングツールではないことに関する多くの記事を見てきました。私は仕事のための正しいツールがここにあるのか疑問に思っています。

私の質問は次のとおりです:上記はSpring Batch Adminで達成できますか?あるいは、Quartzでも十分ですが、上記を行うために設定する必要がありますか?あるいは私は両方が必要なのでしょうか?または、他の何か?

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

答えて

4

持っQuartzでこの機能はMisfire Instructionsと呼ばれる

その予定時刻に実行され、正確に何をしていなかったタスクを再実行システムます必要性 - しかし、はるかに柔軟性があります。必要なのはJDBCJobStoreです。

簡単なタスクを制御するためにいいだろう - つまりは、オンデマンドタスクを実行したり、特定のタスクを最後に実行または異なる時間に実行する特定のタスクのスケジュールを変更

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

Spring Batchとクォーツを統合することはできますが、それを置き換えることはできません。

+0

ありがとうTomek、JDBCJobStoreが私の必要としているようです。 Dzięki:) – machinery

関連する問題