gpt4 book ai didi

java - 将未确认的消息(异常)放入 RabbitMQ 中的不同队列

转载 作者:行者123 更新时间:2023-12-02 14:11:24 26 4
gpt4 key购买 nike

在处理来自 RabbitMQ 的消息时出现异常,我只想取消确认并将特定消息放回差异队列,或者重新排队到同一队列或完全丢弃该消息(根据最后一个 boolean 标志@requeue) basicNack)。

整个想法是稍后我可以获取未确认消息的计数并检查消息格式等,而不是一次又一次重新排队到同一 channel ,而且我想将未确认的信号发送到当前 channel 。

仅供引用,我将 channel 确认模式设置为手动(即container.setAcknowledgeMode(AcknowledgeMode.MANUAL);)

这就是我现在正在做的事情。

public class My***Listener implements ChannelAwareMessageListener{

try{

@Override
public void onMessage(Message message,Channel channel) throws Exception {
String s = new String(message.getBody());
//some logic
//after successful ack manually
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
}
catch(Exception e){
//currently on exception i am unack the channel
channel.basicNack(message.getMessageProperties().getDeliveryTag(),false,false);
}

任何帮助都非常值得赞赏。

最佳答案

您可以将它们发送到死信队列。这是一个非常标准的模式。

https://www.rabbitmq.com/dlx.html

关于java - 将未确认的消息(异常)放入 RabbitMQ 中的不同队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25358380/

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