amqplib を介して Python で rabbitmq を使用しています。可能であれば、キュー以外にも AMQP を使用しようとしています。可能であれば、メッセージを ID で検索し、キューから取り出す前にそれらを変更し、キューから取り出す前にキューから削除します。これらのものは、バランサーの実際のユーザーのキューを保存/更新するために使用され、そのキューは、実際のユーザーの状態を変更することで非同期に更新できます (たとえば、ユーザーが死んでいる - 彼の AMQP メッセージを削除する必要があるか、ユーザーがその状態を変更する必要があります -そして、そのような変更はすべて、ユーザーの AMQP キュー、適切なユーザーの AMQP メッセージ) に反映され、メッセージの実際のデキューが発生する前に反映される必要があります。私の質問は次のとおりです。
amqplib を使用して、ヘッダー内の ID で検索して、dequed される前に queueN 内の AMQP メッセージ本文を変更する方法はありますか? つまり、受信者がディスパッチする前にメッセージ本文を変更したいのです。
ワーカーが amqplib を介して queueN から正確に 5 つ (任意の数) の最後のメッセージをポップする方法はありますか?
メッセージがキューから取り出される前に queueN からメッセージを非同期に削除できますか?
queueN からのメッセージ ID1 の方法はどれですか? queueN の先頭から数えて、実際の現在のキュー位置を取得するには? AMQP は、実際のキュー位置であるメッセージを保存/更新しますか?
前もって感謝します。
更新: rabbitmq のドキュメントによると、AMQP キュー内のメッセージへのこのようなランダム アクセスには問題があります。要素への高速非同期アクセスをサポートする Python のキューの別の適切な決定をアドバイスしてください。メッセージの本文による検索、キュー メッセージの更新/削除、キュー メッセージの高速キュー インデックスの取得をサポートします。user_info で deque + 追加の dict を試しましたが、この場合、競合状態を避けるために、更新ごとにこの deque + dict をロックする必要があります。主な目的 - ロード バランサーのキューにサービスを提供し、キューの変更をカウントするときにブロックを取り除くことです。