gpt4 book ai didi

java - 您可以远程取消 rabbitmq 消费者吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:47:14 24 4
gpt4 key购买 nike

我正在阅读有关 rabbitmq 中的 Channel.basicCancel 操作的文档 https://www.rabbitmq.com/consumer-cancel.html .文档说,一种可能的取消情况是消费者在它正在收听的同一 channel 上发送取消信号。

这是唯一的可能吗?您可以取消在不同 channel /连接/进程上运行的远程消费者吗?

我正在尝试从另一个进程发送取消请求。当我这样做时,它以异常 java.io.IOException: Unknown consumerTag 结束,就像这样的操作仅限于取消本地消费者(在自己的 channel 或连接上)。

更新:

我注意到这个“Unknown consumerTag”异常是 com.rabbitmq.client.impl.ChannelN.basicCancel(String) 中初始验证的结果:

 Consumer originalConsumer = (Consumer)this._consumers.get(consumerTag);
if (originalConsumer == null) {
throw new IOException("Unknown consumerTag");
}
...

但仍然可能有一些 rpc 调用可以解决问题......

最佳答案

RabbitMQ 团队监控the rabbitmq-users mailing list并且只是偶尔在 StackOverflow 上回答问题。


文档是正确的,您必须从其自己的 channel /连接中取消消费者。

其他选项包括让您的消费者知道“取消消息”会导致他们自己停止,或者使用 API 来 close an entire connection ,这将关闭与其关联的所有 channel 。

关于java - 您可以远程取消 rabbitmq 消费者吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50967488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com