私は次のシナリオを持っています:
- いくつかの操作が呼び出され、その結果、複数のタスクが作成されます(数千)
- それら(それらのステータスと詳細)はデータベーステーブルに保存されます
- どういうわけか、これらのタスクを複数のノードで実行する必要があります
したがって、明らかな方法は、作成されたタスクごとにJMSメッセージ(10000タスク-10000メッセージ)を送信し、コンシューマーのプール(ノードごと)がそれらを実行することです-しかし、これはやり過ぎのように見えます-リスナーはタスクをフェッチする必要がありますとにかくDBから、次のタスクを実行する必要があることを通知するだけで十分です。まるで-1つのメッセージを送信し(「次のタスクを実行」)、どういうわけか10000回配信されるように設定します。
これにアプローチする方法は?10000通のメッセージを送信するのが本当に最善のアイデアですか?
また、ActiveMQにはこのメッセージスケジューリング機能があります[1]-おそらく、期間を0に設定し、10000に繰り返すだけですか?それは正しく機能しますか?上記以外の良い方法はありますか?
[1] http://activemq.apache.org/delay-and-schedule-message-delivery.html