あなたはMessagePostProcessor
を作成しrabbitTemplate
でそれを使用することができます。
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;
}
}
を、ユアーズはもっときれいです。ありがとう@ByeBye – Khodabakhsh