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

BLPOPを使用したredisのジョブキュー

    BLPOPを単独で使用してキューからメッセージを削除し、メッセージコンシューマーがメッセージの処理に失敗した場合、メッセージは、失敗したコンシューマーとともに永久に消えないように、再キューイングする必要があります。

    より耐久性のあるメッセージ処理を行うには、処理中のメッセージのリストを維持して、障害が発生した場合にメッセージを再キューに入れることができるようにする必要があります。

    [B]RPOPLPUSHはこのシナリオに最適です。メッセージキューからメッセージをアトミックにポップして処理キューにプッシュできるため、コンシューマー側で障害が発生した場合にアプリケーションが応答できます。

    http://redis.io/commands/rpoplpush

    実際の再キューイングはアプリケーションに任されていますが、このredisコマンドはそのための基盤を提供します。

    RestMQ [http://www.restmq.com/]

    など、Web上に浮かぶredisを使用したキューのドロップインプレース実装もいくつかあります。


    1. mongoimportを使用して、csvデータをmongodbの配列としてインポートします

    2. MongoDBプロジェクションで文字列を数値に変換する

    3. 同じスレッドで複数のチャンネルを購読するJedis

    4. MongoDB-配列内のオブジェクトを更新または挿入します