【发布时间】:2020-08-13 10:43:07
【问题描述】:
我有两个队列:
当我运行 rabbitmqadmin list queues vhost name node messages message_stats.publish_details.rate -u admin -p admin 时同样可见:
我明白了:
+-------+-------------------------+-------------------------+----------+------------------------------------+
| vhost | name | node | messages | message_stats.publish_details.rate |
+-------+-------------------------+-------------------------+----------+------------------------------------+
| / | high_priority | rabbit@server-rabbitmq | 5 | 0.0 |
| / | high_priority_secondary | rabbit@server-rabbitmq | 0 | 0.0 |
+-------+-------------------------+-------------------------+----------+------------------------------------+
我的交流(rabbitmqadmin -V / list exchanges -u admin -p admin)如下:
+-------------------------+---------+
| name | type |
+-------------------------+---------+
| | direct |
| amq.direct | direct |
| amq.fanout | fanout |
| amq.headers | headers |
| amq.match | headers |
| amq.rabbitmq.trace | topic |
| amq.topic | topic |
| high_priority | direct |
| high_priority_secondary | direct |
| low_priority | direct |
+-------------------------+---------+
队列和整个相关逻辑是在 PHP / Symfony 中实现的,但是我想使用本机逻辑(如果可能的话)通过在终端中使用 rabbitmqadmin 或 rabbitmqctl 命令。
如果high_priority 上的消息失败,我希望 RabbitMQ 自动将其移动到 high_priority_secondary 队列,而无需任何 PHP 参与。这可能吗?我已经开始阅读有关 Dead Letter Exchanges 的信息,但我不确定如何处理。
我已经为辅助队列创建了一个消费者,所以只要将消息移到那里,它就会被处理。
是否可以仅在 CLI 中实现?
仅供参考:有一些关于 SO 的建议帖子已经涵盖了这个问题,但没有一个解决方案是纯粹的 CLI 解决方案。
【问题讨论】:
-
不确定medium.com/codait/… 是否有帮助。