final String message = "message";
final MessagePostProcessor messagePostProcessor = new MyMessagePostProcessor(10000);
rabbitTemplate.convertAndSend("my.queue", "routingKey", message, messagePostProcessor);
这将捕获您的消息,应用更改并进一步发送。
public class MyMessagePostProcessor implements MessagePostProcessor {
private final Integer ttl;
public MyMessagePostProcessor(final Integer ttl) {
this.ttl = ttl;
}
@Override
public Message postProcessMessage(final Message message) throws AmqpException {
message.getMessageProperties().getHeaders().put("expiration", ttl.toString());
return message;
}
}
4条答案
按热度按时间ie3xauqp1#
您可以创建
MessagePostProcessor
并在rabbitTemplate
中使用它:这将捕获您的消息,应用更改并进一步发送。
vfh0ocws2#
只是有一个小的变通办法:
eh57zj3b3#
如果你要使用
MessagePostProcessor
解决方案,你应该在你的邮件中添加属性而不是头。fzsnzjdm4#