sql >> データベース >  >> NoSQL >> Redis

この単一の同時実行分散キューを任意のMQプラットフォームに実装するにはどうすればよいですか?

    これは、すべてのワーカーがBRPOPする追加の「ディスパッチ」キューを備えたRedisリストを使用して実現できます。 彼らの仕事のために。ディスパッチキュー内の各ジョブは元のキューIDでタグ付けされ、ワー​​カーがジョブを完了すると、この元のキューに移動してRPOPLPUSHを実行します。 次のジョブを他のワーカーが利用できるようにするために、ディスパッチキューに追加します。したがって、ディスパッチキューには最大 num_queuesがあります。 要素。

    処理する必要があることの1つは、ソースキューが空の場合のディスパッチキューの初期設定です。これは、最初に設定された各キューの「空」フラグに対してパブリッシャーによって行われるチェックであり、ディスパッチする元のキューに何も残っていないときにワーカーによって設定される場合もあります。このフラグが設定されている場合、発行者はLPUSHを実行できます。 最初のジョブを直接ディスパッチキューに入れます。




    1. Mongoose JS経由のMongoDB-findByIDとは何ですか?

    2. ノードサーバーを使用してMongoDBに接続する際の警告

    3. Javaを介してMongoDBに一度に複数のドキュメントを挿入する方法

    4. MongoDB:入力ドキュメント変数との一致の使用