gpt4 book ai didi

spring - RabbitTemplate接收消息并重新排队

转载 作者:行者123 更新时间:2023-12-02 04:44:20 33 4
gpt4 key购买 nike

我的问题与这个非常相似: RabbitTemplate receive and requeue不幸的是,它已被标记为已回答,尽管答案不符合我的需要。

我想模仿 Rabbit 管理 UI 的功能,即我想从队列中同步读取消息,但不希望队列丢失它们,即像偷看一样。

答案在这里RabbitTemplate receive and requeue建议使用监听器,但在这种情况下,它将无限期地读取和重新排队。我只想获取并重新排队消息一次,所以我想我应该使用 RabbitTemplate,而不是监听器。

最佳答案

class Peeker implements ChannelCallback<Message> {

final MessagePropertiesConverter propertiesConverter = new DefaultMessagePropertiesConverter();

@Override
public Message doInRabbit(Channel channel) throws Exception {
GetResponse result = channel.basicGet("someQ", false);
if (result == null) {
return null;
}
channel.basicReject(result.getEnvelope().getDeliveryTag(), true);
return new Message(result.getBody(), propertiesConverter.toMessageProperties(
result.getProps(), result.getEnvelope(), "UTF-8"));
}
}
Peeker peeker = new Peeker();


...


Message peek = this.rabbitTemplate.execute(peeker);

关于spring - RabbitTemplate接收消息并重新排队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33890701/

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