Kho*_*hsh 1 java spring rabbitmq spring-boot
我正在将 spring-boot 与 rabbitMQ 一起使用,我想知道是否可以使用 RabbitTemplate 使用每条消息 TTL。到目前为止我有:
@Autowired
private RabbitTemplate rabbit;
public void produce() {
rabbit.convertAndSend("My.Queue", routingKey, message);
}
Run Code Online (Sandbox Code Playgroud)
你可以MessagePostProcessor在你里面创建和使用它rabbitTemplate:
final String message = "message";
final MessagePostProcessor messagePostProcessor = new MyMessagePostProcessor(10000);
rabbitTemplate.convertAndSend("my.queue", "routingKey", message, messagePostProcessor);
Run Code Online (Sandbox Code Playgroud)
这将捕获您的消息,应用更改并进一步发送。
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;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4102 次 |
| 最近记录: |