我有ConnectionResetError
的一个问题,当我阻止IOLoop是channel.start_consuming()
运行很长一段时间。所以,我读过这样的代码:
https://github.com/pika/pika/blob/0.12.0/examples/basic_consumer_threaded.py
在此代码的工作是在后台线程中运行。
问题是,我的工作是在一个线程中运行时,该工作人员还可以采取更多的就业机会,(即,不断收到ON_MESSAGE回调)。但我不希望我的工人可以同时处理多个作业。 我该怎么办?是否可以告知排队的工人是“忙”,不能接受工作一段时间?
只要您是通过channel.basic_qos
方法设置通道的QoS值,你的消费不会得到比prefetch_count
指定了未确认的消息。
如果您使用prefetch_count=1
的说法,你的消费者会一次只得到一个消息,并且不会得到更多,直到basic_ack
称为该消息。
如果由于某种原因,你看到不同的东西,分享所有的代码作为pika-python
邮件列表上的邮件的附件或链接,我会检查出来。
注:RabbitMQ的团队监控rabbitmq-users
mailing list和只是有时在计算器上回答问题。