3

puka python ライブラリを使用して、RabbitMQ に接続されたいくつかのクライアントを接続します。このクライアントは、接続が使用されていないときにタイムアウトします。現在の puka API は接続のみを提供し、再接続はサポートしていません。通常の接続関数を使用しようとしましたが、_client および promise 変数を上書きするため、エラーが発生します。他の接続を切断せずにプロセスを rabbitMQ に再接続するにはどうすればよいですか? ありがとう!

現在のコードは次のようになり、複数のプロセスで使用されます。

_client = puka.Client(amqp_url=URL)
promise = _client.connect()
_client.wait(promise)

promise = _client.exchange_declare(exchange='notifications')
_client.wait(promise)

promise = _client.queue_declare(queue=_queue, durable=True)
_client.wait(promise)

promise = _client.queue_bind(exchange='notifications', queue=_queue, routing_key=_queue)
_client.wait(promise)

consume_promise = _client.basic_consume(queue=_queue)

while not CONDITION:
    try:
        result = _client.wait(consume_promise, timeout=1)
        if not result:
            continue
    except puka.ConnectionBroken as e:
        # An error is raised here when it disconnects from Rabbit
        continue

    _client.basic_ack(result)
4

0 に答える 0