是否可以在Python的后台(守护进程)线程中运行RabbitMQ消费者(Pika)?
对于我的用例,我希望一个线程使用消息,主程序执行一些预定的工作。
我尝试在守护进程线程中设置和运行消费者,但如果我的程序退出,我会在RabbitMQ队列日志中收到警告/错误,指出连接突然关闭。我知道我没有关闭在守护进程线程中运行的消费者的连接。
经常引用的example code并不真正适合我的用例,它为使用者收到的每个消息创建一个线程。
是否可以在Python的后台(守护进程)线程中运行RabbitMQ消费者(Pika)?
对于我的用例,我希望一个线程使用消息,主程序执行一些预定的工作。
我尝试在守护进程线程中设置和运行消费者,但如果我的程序退出,我会在RabbitMQ队列日志中收到警告/错误,指出连接突然关闭。我知道我没有关闭在守护进程线程中运行的消费者的连接。
经常引用的example code并不真正适合我的用例,它为使用者收到的每个消息创建一个线程。
1条答案
按热度按时间mfuanj7w1#
是否可以在Python的后台(守护进程)线程中运行RabbitMQ消费者(Pika)?
是的
我尝试在守护进程线程中设置和运行消费者,但如果我的程序退出,我会在RabbitMQ队列日志中收到警告/错误,指出连接突然关闭。我知道我没有关闭在守护进程线程中运行的消费者的连接。
这正是我们所期望的。没有正确关闭连接并不是世界末日。如果你的消费者有未完成的消息没有被确认,它们将被重新排队。
您使用守护进程线程而不是普通线程是否有特定的原因?https://docs.python.org/3/library/threading.html#thread-objects
经常引用的示例代码并不真正适合我的用例,它为消费者接收到的每一条消息创建一个线程。
到目前为止,如果你需要帮助,最有效的方法是提供一个git仓库,让别人可以克隆,运行,然后提供反馈。
**注意:**RabbitMQ团队监控
rabbitmq-users
邮件列表,仅在StackOverflow上偶尔回答问题。