2

py-amqpFlopsyモジュールを使用すると、この奇妙な問題が発生します。メッセージを RabbitMQ サーバーに送信するパブリッシャーを作成しましたが、それを指定されたキューに送信できるようにしたいと考えていました。Flopsy モジュールではそれができないので、Publisher オブジェクトの _init__ メソッドでキューを宣言するためのパラメーターと行を追加して微調整しました

    def __init__(self, routing_key=DEFAULT_ROUTING_KEY,
                  exchange=DEFAULT_EXCHANGE, connection=None,
                  delivery_mode=DEFAULT_DELIVERY_MODE, queue=DEFAULT_QUEUE):
        self.connection = connection or Connection()
        self.channel = self.connection.connection.channel()
        self.channel.queue_declare(queue) # ADDED TO SET UP QUEUE
        self.exchange = exchange
        self.routing_key = routing_key
        self.delivery_mode = delivery_mode

チャネル オブジェクトは py-amqplib ライブラリの一部です

私が抱えている問題は、メッセージを指定されたキューに送信している場合でも、メッセージをデフォルトのキューに送信しているということです。このシステムでは、非常に多くのメッセージを送信することが予想されるため、無駄な重複を作成してシステムにストレスを与えたくありません... コードをデバッグして py-amqplib ライブラリ内に移動しようとしましたが、エラーや不足しているステップを把握できません。また、コードの外側に py-amqplib 形式のドキュメントを見つけることができません。

なぜこれが起こっているのか、それを修正する方法についてのアイデアはありますか?

4

1 に答える 1

0

わかりました、私はそれを手に入れたと思います。他の誰かがより良いアイデアを持っていない限り。私はAMQP でこのチュートリアルを確認しましたが、パブリッシャーはキューを知っている必要があると想定していましたが、そうではありません。メッセージを交換に送信する必要があり、消費者はキューが交換に関連していることを宣言します。チュートリアルでわかるように、送信と受信でさまざまなオプションを使用できます。

そのため、発行者と消費者の両方の交換情報を含めており、への呼び出しを利用していませんが、うまくqueue_declare機能しているようです。

于 2010-04-27T08:52:53.473 に答える