Python 使用不同的exchange类型动态创建队列

Python 使用不同的exchange类型动态创建队列,python,rabbitmq,celery,amqp,kombu,Python,Rabbitmq,Celery,Amqp,Kombu,我正在尝试编写一个方法,用现有exchange名称、新队列名称和路由密钥的参数创建新队列。交换可能有不同的类型(直接、扇出、主题) 有没有一种方法可以在不知道交换类型的情况下创建和绑定队列 def my_queue(self, exchange_name, queue_name, routing_key): with connection.acquire(block=True) as conn: ex = Exchange(exchange_name, type='top

我正在尝试编写一个方法,用现有exchange名称、新队列名称和路由密钥的参数创建新队列。交换可能有不同的类型(直接、扇出、主题)

有没有一种方法可以在不知道交换类型的情况下创建和绑定队列

def my_queue(self, exchange_name, queue_name, routing_key):
    with connection.acquire(block=True) as conn:
        ex = Exchange(exchange_name, type='topic')
        queue = Queue(name="my_queue", routing_key="my_key", exchange=ex)
        queue.maybe_bind(conn)
        queue.declare()

考虑到芹菜通常会自动为您创建队列,您所要做的就是(在运行时)调用一个或多个工作者来订阅特定队列。如前所述,如果队列不存在,芹菜将为您提供。类似地,您可能希望从队列中取消订阅,在这种情况下,您可以呼叫。

我需要为特定的exchange建立队列,并添加\u消费者还需要exchange名称和类型(请参阅您提供的链接):“如果您需要更多控制,您还可以指定exchange、路由\u密钥甚至其他选项”您根本不必指定交换<代码>添加消费者('new_queue',reply=True,destination['celery1@domain.tld)工作正常。