私はcron4jを使って30分ごとにタスクを実行するようにスケジュールしています。ただし、同じタスクの前のインスタンスがまだ実行されている場合は、タスク実行の2番目のインスタンスを実行しないことをお勧めします。 私は、ExecutorのisLive()やjoin()のようなメソッドがあることを知っていますが、目的を達成するためにそれらを使用する適切なメソッドが不明です。Cron4Jでシーケンスを適用する
1
A
答えて
0
逐次処理を希望します。その場合、2つのcron4jタスク、プロセスパラメータを生成するrask、およびパラメータを処理するタスクの間の 'パイプ'としてqueueを使用することをお勧めします。
パラメータを準備し、-----キューに入れる< ----- cron4j(task2、おそらく10分間隔)は、これからパラメータを読み取り、それに応じて処理します。
cron4jのタスク2では、キューからパラメータを処理した後、終了する前にキューの内容を再度確認し、新しいものがあれば処理を続行できます。
このアプローチでは、物事は順番に処理され、2つのタスクはキューオブジェクトとインターフェースするため、疎結合されます。
キューにjava.util.Queueを使用できます。
関連する問題
- 1. コード実行シーケンスを適用する
- 2. Java Cron4J永続タスク
- 3. Linqを使ってシーケンスのサブシーケンスにフィルタを適用する
- 4. IN()のシーケンスを使用する
- 5. 多層アーキテクチャを使用する場合のメソッド呼び出しの適切なシーケンスは何ですか?
- 6. (シーケンスの)シーケンスのシーケンスを平滑化
- 7. 自然にソートされたシーケンスのJoin、GroupBy、Distinct、Min/Maxを最適化する
- 8. SQLサーバでシーケンスを生成する
- 9. アンドロイドでアニメーションのシーケンスを実行する
- 10. clojureでシーケンスを結合するには?
- 11. シーケンスを変更する
- 12. HListをシーケンス化する
- 13. Boost.Fusionシーケンスの要素を別のシーケンスから初期化する
- 14. 整数のシーケンスを繰り返しシーケンスにマップする
- 15. Rubyでのシーケンス
- 16. クラスを適用するときにトランジションプロパティを適用します。
- 17. シーケンスの各要素に適用される関数に、そのインデックスを認識しながらどのような用語を使用できますか?
- 18. @ SequenceGeneratorを使用してシーケンスを作成する
- 19. Webアプリケーションでテーマを適用する
- 20. ns2.34で802.11を適用する
- 21. モバイルコントロールでディープリンクを適用する方法
- 22. VB.NETでタイプエイリアスを適用する
- 23. テーマをプログラムで適用する
- 24. AnythingSliderでスワイプを適用する方法
- 25. ユーザーコントロールでスタイルシートを適用する方法
- 26. イメージビューでアニメーションを適用する方法
- 27. Meteor.jsでjQueryを適用する方法
- 28. swiplで制約を適用する
- 29. CMake環境でフラグを適用する
- 30. マークダウンでカラーを適用する方法
ご迷惑をおかけして申し訳ありません。私はあなたの応答の可能な通知を逃した。 – Bokhari
Infact、私はプロセスしか持っていませんが、それは30分ごとに実行されるようにスケジュールされています。最初のプロセスが実行されているときに、同じプロセスの2番目のインスタンスのオーバーランを制御したいだけです。テーブルAからテーブルBに30分ごとにデータをコピーすることを前提とします。スケジュールされたプロセスは午前8時に開始されました。それは30分以上かかりましたが、午前8時30分にスケジュールは同じプロセスを開始します。このオーバーランを実際にどのように制御するか? – Bokhari
@ボカハリ:私の答えで述べたように、あなたのスケジューラーのプロセスはファイルのコピーではなく、タスクオブジェクトを作成し、タスクオブジェクトをキューに追加して、タスクキューと呼んでください。そして、別のスケジューラがあります。プロセスは、タスクキューに新しいタスクがあるかどうかを確認し、タスクを取得し、キューから削除し、タスクを処理します。ファイルのコピーが完了していなくても新しいタスクが追加されていても、まだ処理中の2番目のスケジューラは、キューから新しいタスクをフェッチする前に完了するまで待つ必要があります。 – bertie