私は結果として1文字列と2整数を返す多くのSidekiqジョブ(数千万)を処理しています。 Redisサーバーをホストしている/結果を格納している中央コンピュータと、この中央コンピュータからデータを取得して作業者として働く複数のコンピュータがあります。Sidekiq - 別のキューにプッシュするワーカーの副作用?
労働者の中に、私は処理のために必要なロジックを行い、その結果が呼び出された後、私はちょうど呼び出し:
Sidekiq::Client.push('class' => ResultsWorker, 'args' => [arg1, arg2, arg3])
と中央コンピュータ上で、私はちょうどこのキューをチェック別の労働者を持っており、結果をデータベースに格納する。
私はこのような "双方向コミュニケーション"のパターンがこのサイドキックコミュニティのどこにでも言及されているのを見ていません。だから私は疑問に思っていた、これには理由があるのだろうか?これにはいくつかの副作用がありますか?私は、結果を受け入れて保存するredis server compにシンプルなWebアプリケーションを置こうとしましたが、そのような小さなデータに対して、別のキューを持つ同じRedisサーバーを再利用しないのはなぜですか?
私はこのような関連する/同様のパターンを指すことができますか?一ヶ月前にSideKiqと協力し、人々が実際にどのようにそれを適用するかを学びたいと熱望しています。 – daremkd
@daremkd: "パターン"はどういう意味ですか?ジョブをエンキューすることはパターンではありません:) –
ジョブが終了したときに通常行われることについては、どのアプローチ(「アプローチ」はより良い言い方です:)))が最も一般的です。今のところ私は知っている)a)いくつかのAPIにHTTPリクエストを送るb)結果がargsのジョブをキューに送る – daremkd