RabbitMQ:是否可以在队列为空时删除队列?
RabbitMQ: Is it possible to delete queues when they are empty?
理想情况下,我想在 RabbitMQ 中的队列变空时删除它们。基本上,我希望队列包含积压的消息,然后当发生某些事情时,这些消息将被发送直到队列为空。一旦队列为空,我想删除它。
这可能吗?我正在使用节点。
可以声明一个 RabbitMQ 队列,如果没有消费者附加到它,它将被自动删除。您还可以指定一个 Time-To-Live 值,即使没有消费者,队列也将保持活动状态。更多信息在这里:https://www.rabbitmq.com/amqp-0-9-1-reference.html (look for Queues) and here: http://www.rabbitmq.com/ttl.html#queue-ttl
由于您的问题被标记为 javascript
,您可能正在使用 squaremo 的 amqplib 库。以下是如何使用该库适当地声明队列:
var queueType = {durable: false, autoDelete: true, exclusive: false,
arguments : {
'x-message-ttl' : messageTTL,
'x-expires' : queueTTL
}
};
channel.assertQueue (qname, queueType_Shared)
有关 sqmaremo 的 amqplib 的更多信息,请参见此处:http://www.squaremobius.net/amqp.node/doc/channel_api.html
理想情况下,我想在 RabbitMQ 中的队列变空时删除它们。基本上,我希望队列包含积压的消息,然后当发生某些事情时,这些消息将被发送直到队列为空。一旦队列为空,我想删除它。
这可能吗?我正在使用节点。
可以声明一个 RabbitMQ 队列,如果没有消费者附加到它,它将被自动删除。您还可以指定一个 Time-To-Live 值,即使没有消费者,队列也将保持活动状态。更多信息在这里:https://www.rabbitmq.com/amqp-0-9-1-reference.html (look for Queues) and here: http://www.rabbitmq.com/ttl.html#queue-ttl
由于您的问题被标记为 javascript
,您可能正在使用 squaremo 的 amqplib 库。以下是如何使用该库适当地声明队列:
var queueType = {durable: false, autoDelete: true, exclusive: false,
arguments : {
'x-message-ttl' : messageTTL,
'x-expires' : queueTTL
}
};
channel.assertQueue (qname, queueType_Shared)
有关 sqmaremo 的 amqplib 的更多信息,请参见此处:http://www.squaremobius.net/amqp.node/doc/channel_api.html