我如何停止在Java和Python客户端的RabbitMQ中消费?

问题描述 投票:3回答:2

我同时使用channel.basicConsume()的Java和Python客户端。在某些时候,我想停止那些消费者而不停止整个程序。

[在带有Pika的Python中,我已放置channel.stop_consuming()调用,但是这些调用会产生我忽略的错误。似乎可以工作

在Java中,我不确定如何执行此操作,因为stop_consume()似乎不可用。

我看到的所有文档都讨论了创建消费者的所有方法,但是我似乎找不到任何能阻止它们的东西。

最佳方法是什么?

java python rabbitmq pika
2个回答
8
投票

basic_consume的对应项是basic_consume。当rabbitmq完成取消后,basic_cancel将触发提供的basic_cancel回调函数。在可能仍会收到一些消息的短时间内做好准备。

参见:basic_cancel


-2
投票

您应该使用一个线程,所以只需中断该线程并让程序的其余部分运行就可以了

on_basic_cancel_ok

您可能需要将Pika Channel出售给其他地方,而不是将其作为对象的字段,而不是局部变量

© www.soinside.com 2019 - 2024. All rights reserved.