RabbitMQはこの目的のDelayed Exchange機能です。 http://docs.spring.io/spring-amqp/reference/html/_reference.html#delayed-message-exchange:あなたが好きすべき春AMQP 1.6
前
<rabbit:topic-exchange name="topic" delayed="true" />
MessageProperties properties = new MessageProperties();
properties.setDelay(15000);
template.send(exchange, routingKey,
MessageBuilder.withBody("foo".getBytes()).andProperties(properties).build());
UPDATE
をバージョン1.6春AMQPも問題にハイレベルのAPIを提供して以降では
これは:
@Bean
CustomExchange delayExchange() {
Map<String, Object> args = new HashMap<String, Object>();
args.put("x-delayed-type", "direct");
return new CustomExchange("my-exchange", "x-delayed-message", true, false, args);
}
...
MessageProperties properties = new MessageProperties();
properties.setHeader("x-delay", 15000);
template.send(exchange, routingKey,
MessageBuilder.withBody("foo".getBytes()).andProperties(properties).build());
この質問とその回答もご覧ください:Scheduled/Delay messaging in Spring AMQP RabbitMq
これは1.4バージョンで利用できますか? – Akshat
質問は何ですか?私は言った:1.6以来。あなたはそのような古いEOLバージョンに固執する理由を説明できますか? –
私たちは間違いなく最新のバージョンにアップグレードする予定ですが、いつか(2ヶ月)、別の製品展開戦略があるので、この機能を開発していて、amqp 1.4.3を持っているのでこの問題に戻ります私達がこのバージョンで達成できる方法であれば、私たちは製品のアップグレードを待つ必要があります – Akshat