【发布时间】:2017-01-30 10:08:34
【问题描述】:
我正在使用 RabbitMQ 进行日常交易。我的消费者是部署在多台机器上的 .Net 桌面应用程序。每天,事务仅在特定时间段内被推送到队列中。除此之外,任何新交易都需要硬停止。我已经设法停止向队列发送新事务。但是,队列中的现有事务也需要刷新,以便不会发送给任何消费者。 我尝试搜索此内容,但除了两个选项外,没有找到任何清除队列的解决方案-
- 每天删除并重新创建队列
- 停止队列的所有消费者
这两种方法都可以实现,但需要对我的系统进行大量更改。我想知道是否有更好的方法。
【问题讨论】:
-
您是否尝试过使用此功能:rabbitmq.com/ttl.html
-
谢谢,我会检查一下。
-
您在
rabbitmqadmin中有一个功能可以清除队列,rabbitmqadmin purge queue name=queue_name。尽管这不会在您的代码库中复杂地完成,但这意味着您不需要删除队列或停止消费者。 -
@PärEriksson 是的,我查过了。我需要以某种方式在 C# 中执行此操作。
-
@SouvikGhosh 啊哈好吧。我希望您正在使用的 AMQP 驱动程序存在
yourQueue.purge()。调用此函数的计划任务(不确定 C# 生态系统中存在什么)会是一个解决方案吗?