gpt4 book ai didi

rabbitmq - RabbitMQ STOMP 有什么方法可以停止消费消息,直到上一个消息被确认为止?

转载 作者:行者123 更新时间:2023-12-02 19:15:09 25 4
gpt4 key购买 nike

我在我的项目中使用 RabbitMQ Web-STOMP,它对我来说非常好,但它有一个问题。当消费者订阅队列时,它会立即获取队列中的所有消息。就我而言,消息任务可能需要很长时间,并且只有在上一条消息完成后,才需要消费者从队列中获取下一条消息。

一切正常,当消费者订阅后开始发布时,但是当队列中已经有消息时,第一个订阅的消费者将获得所有消息,而其他消费者将保持空闲。是否有类似 node-amqp queue.shift() 方法仅在前一条消息被确认时才使用下一条消息?

最佳答案

(您使用哪个客户端?)

您的问题的答案是basic_qos,请参阅amqp reference并搜索 basic.qos

在 C# API 中,您将执行以下操作:

int prefetch = 10;

IModel channel = connection.CreateModel(); //where connection is IConnection
channel.basic_qos(0, prefetch, false);

预取大小可用于告诉rabbitmq服务器要向消费者发送多少消息,直到它们被确认为止。如果设置了 NO-ACK 选项,则忽略预取大小。

请记住,设置此值可能会对性能产生潜在影响,请查看 this .

关于rabbitmq - RabbitMQ STOMP 有什么方法可以停止消费消息,直到上一个消息被确认为止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13623448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com