【发布时间】:2015-09-18 02:09:48
【问题描述】:
理想情况下,我想在 RabbitMQ 中的队列为空时删除它们。基本上,我希望一个队列包含积压的消息,然后当发生某些事情时,这些消息将被发送出去,直到队列为空。一旦队列为空,我想删除它。
这可能吗?我正在使用节点。
【问题讨论】:
标签: javascript node.js rabbitmq amqp
理想情况下,我想在 RabbitMQ 中的队列为空时删除它们。基本上,我希望一个队列包含积压的消息,然后当发生某些事情时,这些消息将被发送出去,直到队列为空。一旦队列为空,我想删除它。
这可能吗?我正在使用节点。
【问题讨论】:
标签: javascript node.js rabbitmq amqp
可以声明一个 RabbitMQ 队列,如果没有附加消费者,它将自动删除。您还可以指定一个生存时间值,即使没有消费者,队列也将保持活动状态。更多信息在这里:https://www.rabbitmq.com/amqp-0-9-1-reference.html(查找队列)和这里: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
【讨论】: