gpt4 book ai didi

java - RabbitMQ – 在等待响应时取消 consumer.nextDelivery

转载 作者:行者123 更新时间:2023-11-30 11:30:56 27 4
gpt4 key购买 nike

是否可以使用 RabbitMQ amqp-client 库取消 nextDelivery?我有一个线程已经调用了 consumer.nextDelivery(),这个调用正在等待队列的响应。我想要的是从另一个线程停止它。 channel.basicCancel 只有在当前的nextDelivery 调用返回后才会取消,这并不是我想要的,因为应用程序处于无法执行任何操作的状态与收到的交货。

一段时间以来,我一直在寻找解决方案,现在我认为我对 RabbitMQ 有一些误解,因为我没有找到与我的问题相匹配的搜索结果。

最佳答案

What I want is to stop this from another thread

个人建议:不要这样做。

从评论中收集的信息来看,您似乎将消息接收与其处理分开了。我的建议是合并两者;并使用 ExecutorService 将它们包装起来。

当你需要关闭整个东西时,在 ExecutorService 上调用 .shutDown():这意味着没有其他任务可以提交给该执行。

由于现在合并了接收/处理过程,这意味着您永远不会有收到消息但无法再处理的状态。

关于java - RabbitMQ – 在等待响应时取消 consumer.nextDelivery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17511293/

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