第13章 メッセージのスケジューリング

最初にメッセージを送信する未来の時間を指定できます。これは、メッセージを送信する前に、_AMQ_SCHED_DELIVERY スケジュール済みデリバリープロパティーを設定すると、指定できます。

指定する値は、メッセージが送信される時間 (ミリ秒単位) に対応する正の long にする必要があります。以下は、JMS API を使用してスケジュールされたメッセージを送信する例です。

// Create a message to be delivered in 5 seconds
TextMessage message = session.createTextMessage("This is a scheduled message message that will be delivered in 5 sec.");
message.setLongProperty("_AMQ_SCHED_DELIVERY", System.currentTimeMillis() + 5000);
producer.send(message);

...

// The message will not be received immediately, but 5 seconds later
TextMessage messageReceived = (TextMessage) consumer.receive();

スケジュールされたメッセージは、メッセージを送信する前に _AMQ_SCHED_DELIVERY プロパティーを設定し、コア API を使用して送信することもできます。