2017-02-13 4 views
0

RabbitMQでは、「Worker Queue」パターンを作りたいと思います。 各作業員は何らかの価値を返すべきです。RabbitMQ、ワインディング10人全員が実行中

しかし私が必要とする主なことは、これらのタスクがすべて実行されたときに、一連の作業を実行して、イベントやメッセージなどがあることです。

これを実行するには暑いですか?

たとえば、私は労働者に10のURLを送信します。各URLは、ページ設定されたWebサイトのページです。だから私はこれらすべてのページを取得したい、一度それらがすべて取得されたら、私はそれらと何かをしなければならない。しかし主な目的はそれらをすべて持っていることです!

+0

これはかなり説得力のある質問ですが、答えが得られないうちにWindowsサービスでこれを実行し、非同期タスクに作業をさせて待っている方法があります –

答えて

-1

そのようなパターンの名前は「ばらばらに散らかった」ものであり、それはrabbitmq公式サイトではむしろうまく説明されています。

1

短い答えは「サガ」(http://docs.particular.net/nservicebus/sagas/)または「プロセスマネージャ」(http://www.enterpriseintegrationpatterns.com/ProcessManager.html)パターンです。これは基本的に同じものです。

このパターンの意図は、インテリジェントである単一のコードを持つことです。 10のタスクのどれが送信されたかを知っており、10の応答すべてを待つ。 10件すべての回答を受け取ったら、それは次に起こらなければならない事柄に移ります。

これを実装する方法はさまざまです。使用しているプログラミング言語やライブラリに応じて、多くのオプションがあります。あなたは、C#でnservicebusまたはmasstransitを使用している場合、例えば、このパターンが内蔵されて

より多くのパターンがどのように働くかの詳細に加え、JavaScriptで例えば(他の言語に翻訳することができますかなり簡単に)、私のブログの記事をここに見てください:https://derickbailey.com/2015/08/10/managing-workflow-in-long-running-javascript-processes/

関連する問題