Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RabbitMQ订阅限制要预取的消息数_Ruby On Rails_Ruby_Rabbitmq_Bunny - Fatal编程技术网

Ruby on rails RabbitMQ订阅限制要预取的消息数

Ruby on rails RabbitMQ订阅限制要预取的消息数,ruby-on-rails,ruby,rabbitmq,bunny,Ruby On Rails,Ruby,Rabbitmq,Bunny,我使用rabbitmq在用RubyonRails编写的微服务之间进行通信。每个服务订阅一个主题。所有服务都可以根据需要扩展并作为多个实例运行 在订阅期间,bunny将队列中的所有消息移动到未确认状态。这使得其他缩放实例处于空闲状态,因为没有处于就绪状态的消息 是否有办法限制订阅可以获取的消息数量,以便其他实例可以从队列中获取剩余消息。根据您提供的信息,我假设您正在使用。如果这一假设不正确,那么rabbitmq还可以使用其他ruby客户端,请告诉我和/或查看与您的客户端相关的文档 回到rubybu

我使用rabbitmq在用RubyonRails编写的微服务之间进行通信。每个服务订阅一个主题。所有服务都可以根据需要扩展并作为多个实例运行

在订阅期间,bunny将队列中的所有消息移动到未确认状态。这使得其他缩放实例处于空闲状态,因为没有处于就绪状态的消息


是否有办法限制订阅可以获取的消息数量,以便其他实例可以从队列中获取剩余消息。

根据您提供的信息,我假设您正在使用。如果这一假设不正确,那么rabbitmq还可以使用其他ruby客户端,请告诉我和/或查看与您的客户端相关的文档

回到rubybunny,link提供了指向必要信息的点,并引用了它:

对于多个使用者共享一个队列的情况,使用 能够指定每个消费者一次可以发送多少条消息 在发送下一个确认之前

在AMQP 0.9.1中,这称为QoS或消息预取。 预取是基于每个通道配置的。 要配置预取,请使用Bunny::Channelprefetch方法,如下所示:


搞定了。谢谢我一直在找这个。
ch1 = connection1.create_channel
ch1.prefetch(10)