如何按队列名称清除 python 中的所有 rabbitmq 队列
How to purge all rabbitmq queues in python by queue name
我使用 python kombu
包与 rabbitmq 服务交互。
我想清除所有队列。我看到有一个 kombu.Queue.purge
方法,但我不想创建 kombu.Queue
对象,因为我不知道哪些交换器连接到哪些队列。我只想使用队列名称。
有一个 kombu Channel
class 实现了一个 queue_purge
方法,该方法根据其名称清除队列。
以下代码列出所有队列并根据其名称清除它们。
from kombu import Connection
# Create a connection
mq_conn_string = 'amqp://user:password@domain:port//' # Set the correct credentials
mq_conn = Connection(mq_conn_string)
mq_conn.connect()
# Create a channel
channel = mq_conn.channel()
# Get all queues
vhost = "/"
manager = mq_conn.get_manager()
queues = manager.get_queues(vhost)
# Purge each queue
for queue in queues:
queue_name = queue["name"]
channel.queue_purge(queue_name)
我使用 python kombu
包与 rabbitmq 服务交互。
我想清除所有队列。我看到有一个 kombu.Queue.purge
方法,但我不想创建 kombu.Queue
对象,因为我不知道哪些交换器连接到哪些队列。我只想使用队列名称。
有一个 kombu Channel
class 实现了一个 queue_purge
方法,该方法根据其名称清除队列。
以下代码列出所有队列并根据其名称清除它们。
from kombu import Connection
# Create a connection
mq_conn_string = 'amqp://user:password@domain:port//' # Set the correct credentials
mq_conn = Connection(mq_conn_string)
mq_conn.connect()
# Create a channel
channel = mq_conn.channel()
# Get all queues
vhost = "/"
manager = mq_conn.get_manager()
queues = manager.get_queues(vhost)
# Purge each queue
for queue in queues:
queue_name = queue["name"]
channel.queue_purge(queue_name)