繁体   English   中英

RabbitMQ 消费者在后台

[英]RabbitMQ consumer in the background

是否可以在 Python 的后台(守护进程)线程中运行 RabbitMQ 消费者(Pika)?

对于我的用例,我希望一个线程使用消息,而主程序执行一些预定的工作。

我的尝试是在守护线程中设置和运行消费者,但如果我的程序退出,那么我会在 RabbitMQ 队列日志中收到警告/错误,指出连接突然关闭。 我知道我不会关闭在守护线程中运行的消费者的连接。

经常引用的示例代码并不真正适合我的用例。 它为消费者收到的每条消息创建一个线程。

是否可以在 Python 的后台(守护进程)线程中运行 RabbitMQ 消费者(Pika)?

是的

我的尝试是在守护线程中设置和运行消费者,但如果我的程序退出,那么我会在 RabbitMQ 队列日志中收到警告/错误,指出连接突然关闭。 我知道我不会关闭在守护线程中运行的消费者的连接。

这正是预期会发生的事情。 不正确关闭连接并不是世界末日。 如果您的消费者有未确认的未完成消息,它们将被重新排队。

您使用守护线程而不是普通线程是否有特定原因? https://docs.python.org/3/library/threading.html#thread-objects

经常引用的示例代码并不真正适合我的用例。 它为消费者收到的每条消息创建一个线程。

如果您目前需要帮助,最有效的方法是提供一个 git 存储库,有人可以克隆、运行然后提供反馈。


注意: RabbitMQ 团队监控rabbitmq-users邮件列表,有时只在 StackOverflow 上回答问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM