gpt4 book ai didi

c# - 在 RabbitMQ 中调度基本消费

转载 作者:行者123 更新时间:2023-11-30 16:46:54 24 4
gpt4 key购买 nike

我成功地使用了上个月的 RabbitMQ。使用 RabbitMQ 的 BasicConsume 功能从队列中读取消息。发布到队列的消息立即被相应的消费者消费。现在我创建了一个新的队列DelayedMsg,发布到这个队列的消息必须在延迟5分钟后才被读取。我该怎么办?

最佳答案

在将消息从发布者/发送者发布到主队列时,将当前时间戳值添加到消息中。举个例子,'published_on' => 1476424186。

在消费者端,首先查看当前时间戳与published_on的时间差。

如果发现差异小于 5 分钟,则将您的消息发送到另一个队列(DLX 队列)并设置到期时间。(使用 amqp 消息的“到期”属性)

这个到期值应该是(当前时间戳 - published_on)并且应该以毫秒为单位。

DLX 队列中的消息将在整整 5 分钟后过期。

确保“x-dead-letter-exchange”应该是您的主队列交换并且与 dlx 队列绑定(bind),这样当消息过期时,它会自动排回主队列。见Dead Letter Exchange了解更多详情。

因此,消费者现在在 5 分钟后收到消息,正常处理它,因为它的当前时间戳和 published_on 差异将大于 5 分钟。

关于c# - 在 RabbitMQ 中调度基本消费,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40035543/

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