RabbitMQ的使用线程时,鼠不采取一种以上的工作

问题描述 投票:0回答:1

我有ConnectionResetError的一个问题,当我阻止IOLoop是channel.start_consuming()运行很长一段时间。所以,我读过这样的代码: https://github.com/pika/pika/blob/0.12.0/examples/basic_consumer_threaded.py 在此代码的工作是在后台线程中运行。

问题是,我的工作是在一个线程中运行时,该工作人员还可以采取更多的就业机会,(即,不断收到ON_MESSAGE回调)。但我不希望我的工人可以同时处理多个作业。 我该怎么办?是否可以告知排队的工人是“忙”,不能接受工作一段时间?

rabbitmq pika python-pika
1个回答
1
投票

只要您是通过channel.basic_qos方法设置通道的QoS值,你的消费不会得到比prefetch_count指定了未确认的消息。

如果您使用prefetch_count=1的说法,你的消费者会一次只得到一个消息,并且不会得到更多,直到basic_ack称为该消息。

如果由于某种原因,你看到不同的东西,分享所有的代码作为pika-python邮件列表上的邮件的附件或链接,我会检查出来。


注:RabbitMQ的团队监控rabbitmq-users mailing list和只是有时在计算器上回答问题。

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