rabbitmq pika在使用线程时不接受多个作业

rabbitmq pika在使用线程时不接受多个作业,rabbitmq,pika,python-pika,Rabbitmq,Pika,Python Pika,当我阻止channel.start\u长时间运行的IOLoop时,我遇到ConnectionResetError问题。所以我读了这段代码: 在此代码中,作业在后台线程中运行 问题是,当我的作业在线程中运行时,工作者仍然可以接受更多的作业,也就是说,继续进行消息回调。但我不希望我的员工一次处理多个工作。 我该怎么办?是否可以通知队列工作者“忙”,并且在一段时间内无法接受作业?只要您通过该方法设置频道的QoS值,您的消费者将不会收到比预回迁计数指定的更多的未确认消息 如果使用prefetch_cou

当我阻止channel.start\u长时间运行的IOLoop时,我遇到ConnectionResetError问题。所以我读了这段代码: 在此代码中,作业在后台线程中运行

问题是,当我的作业在线程中运行时,工作者仍然可以接受更多的作业,也就是说,继续进行消息回调。但我不希望我的员工一次处理多个工作。
我该怎么办?是否可以通知队列工作者“忙”,并且在一段时间内无法接受作业?

只要您通过该方法设置频道的QoS值,您的消费者将不会收到比预回迁计数指定的更多的未确认消息

如果使用prefetch_count=1参数,则消费者一次只能收到一条消息,并且在为该消息调用basic_ack之前不会收到更多消息

如果由于某种原因,您看到了一些不同的东西,请将您的所有代码作为邮件列表中的附件或链接共享,我会查看它


注意:RabbitMQ团队监视RabbitMQ用户,有时只回答有关StackOverflow的问题。

我的工作时间相当长,因此通常会断开连接。我读到我不应该禁用心跳。因此,如果我理解正确,我应该设置prefetch_count=1,在线程中执行我的长任务,然后确认消息?因为现在我在消息到达时立即确认消息,因为我不确定长时间不确认消息是否可以。链接到的示例代码正好显示了您应该做什么。你看过密码了吗?