Pika Arbeiter wirft exception beim ausführen Kanal.declare_queue

Ich Schreibe ein python-client für die Aufnahme einer Arbeit, die Nachrichten aus einer RabbitMQ-broker und verarbeiten die Aufträge, für die Rückgabe der Ergebnisse auf einen anderen server. Mein script sendet Nachrichten an den RabbitMQ-broker startet gut, aber meine Arbeiter wirft die folgende Fehlermeldung beim ausführen Kanal.declare_queue(queue='task_queue')

pika.Ausnahmen.AMQPChannelError: (406, "PRECONDITION_FAILED - Parameter für das queue 'task_queue' in vhost '/' nicht-äquivalent")

Client:

import pika    
connection = pika.BlockingConnection(pika.ConnectionParameters(host=cmdargs.server))
channel = connection.channel()
channel.queue_declare(queue='task_queue')
channel.basic_qos(prefetch_count=1)
channel.basic_consume(ProcJobCallback, queue='task_queue')
channel.start_consuming()

Server-Methode für die Interaktion mit RabbitMQ:

def addNewJob(self, newJob):
        self.jobList.append(newJob)
        connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
        channel = connection.channel()
        channel.queue_declare(queue='task_queue')

        for tile in newJob.TileStatus:
                message = "{0},{1},{2}".format(newJob, tile[0], tile[1])
                channel.basic_publish(exchange='', routing_key='task_queue', body=message, properties=pika.BasicProperties(delivery_mode = 2, ))
        connection.close()

Jede Hilfe oder Einsicht wird sehr geschätzt.

EDIT: ich habe herausgefunden, warum ich immer eine Fehlermeldung mit dem oben aufgeführten code. Ich war die Angabe delivery_mode=2 bei der Veröffentlichung meiner Nachrichten, aber wenn ich erklärte der Warteschlange, ich vergaß hinzuzufügen, die Robust=True parameter.

Schreibe einen Kommentar