Rabbitmq pika 使用线程时不会执行多个作业



当我阻止 IOLoop 时,channel.start_consuming()长时间运行时,我遇到了ConnectionResetError问题。 所以我读了这段代码:

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邮件列表,并且只偶尔回答 StackOverflow 上的问题。

相关内容

  • 没有找到相关文章

最新更新