我需要一个解决方案,可以设置从队列轮询出的消息之间的最小延迟。我不想将每条消息延迟固定的毫秒数。假设队列在第一秒内收到3条消息。但我想每5秒钟拉一次。因此,我的客户端不会超载与许多请求。有没有办法用rabbitmq解决这个问题,或者我必须改用其他框架?
tct7dpnv1#
任何时候,当你寻求有关RabbitMQ(或任何软件)的帮助时,你必须提供有关你正在使用的软件版本以及客户端库的信息。这样,帮助你的人就可以有效地做到这一点。您的客户端应该使用basic.consume方法从队列中消费。将通道的“prefetch”值设置为您希望该消费者一次接收的未确认消息的最大数量(如果您一次只想要一条消息,则可以将其设置为1)。然后,做你的工作,只有在所需的时间已经过去后才确认消息。请确保这不会导致消息在队列中累积。您将monitor您的RabbitMQ安装,对吗?
basic.consume
1
1条答案
按热度按时间tct7dpnv1#
任何时候,当你寻求有关RabbitMQ(或任何软件)的帮助时,你必须提供有关你正在使用的软件版本以及客户端库的信息。这样,帮助你的人就可以有效地做到这一点。
您的客户端应该使用
basic.consume
方法从队列中消费。将通道的“prefetch”值设置为您希望该消费者一次接收的未确认消息的最大数量(如果您一次只想要一条消息,则可以将其设置为1
)。然后,做你的工作,只有在所需的时间已经过去后才确认消息。请确保这不会导致消息在队列中累积。您将monitor您的RabbitMQ安装,对吗?