gpt4 book ai didi

rabbitmq - RabbitMQ 中的延迟消息

转载 作者:行者123 更新时间:2023-12-03 08:47:02 31 4
gpt4 key购买 nike

是否可以延迟通过 RabbitMQ 发送消息?
例如,我想在 30 分钟后使客户端 session 过期,并且我发送了一条将在 30 分钟后处理的消息。

最佳答案

您可以尝试两种方法:
旧方法:在每个消息/队列(策略)中设置 TTL(生存时间) header ,然后引入一个 DLQ 来处理它。一旦 ttl 过期,您的消息将从 DLQ 移动到主队列,以便您的监听器可以处理它。
最新方法:最近RabbitMQ想出了 RabbitMQ 延迟消息插件 ,使用它您可以实现相同的功能,并且该插件支持自 RabbitMQ-3.5.8 起可用。
您可以使用类型 x-delayed-message 声明一个交换,然后使用自定义 header x-delay 发布消息,以毫秒为单位表示消息的延迟时间。消息会在之后投递到各自的队列中x 延迟 毫秒

byte[] messageBodyBytes = "delayed payload".getBytes("UTF-8");
Map<String, Object> headers = new HashMap<String, Object>();
headers.put("x-delay", 5000);
AMQP.BasicProperties.Builder props = new
AMQP.BasicProperties.Builder().headers(headers);
channel.basicPublish("my-exchange", "", props.build(), messageBodyBytes);
更多信息: git

关于rabbitmq - RabbitMQ 中的延迟消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4444208/

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