PHP RabbitMQ Consumer: Prefetch 1


PHP RabbitMQ Consumer: Prefetch 1

为了避免常见的并发问题,我有单线程 php 消费者,它使用来自一个 rabbitMQ 队列的多条消息。

基本上,它是相同的php脚本执行X次并等待新消息。

我的问题是:
假设我的使用者是单线程的,我将预取配置设置为 1 条消息是否正确?

PHP 预取计数 RabbitMQ

因为显然它一次不会处理超过 1 条消息......
右?

预取只是代理将放在消费者端的许多消息,只有在确认这些消息后才删除它们。现在,如果我们假设客户端(消费者)一次正在处理一条消息,那么这个数字prefetch_count并不重要。但是,如果客户端在一个线程中使用消息,然后生成新线程 - 每个线程处理一条消息,那么显然是另一回事。因此,可以说多线程确认更像是一个故事。
由于您编写了单线程消费者,我很确定您的意思是整个客户端都是单线程的,而不仅仅是"消耗"部分,所以我的直接答案是您可以将其设置为 1,但您不必这样做,它更多地取决于您确认消息的方式。我只是想详细说明多线程处理部分。