与普通消息不同,定期消息是在未来某个指定时间发送的消息。
为了创建定期消息,需要设定一个特殊的参数.
用来标识一个定期消息的参数是"_HQ_SCHED_DELIVERY" (相当于常量Message.HDR_SCHEDULED_DELIVERY_TIME)。
这个参数的值必须是一个大于零的长整型,单位是毫秒。下面例子给出了使用JMS接口创建定期消息的方法:
TextMessage message = session.createTextMessage("This is a scheduled message message which will be delivered in 5 sec."); message.setLongProperty("_HQ_SCHED_DELIVERY", System.currentTimeMillis() + 5000); producer.send(message); ... // message will not be received immediately but 5 seconds later TextMessage messageReceived = (TextMessage) consumer.receive();
也可以使用核心接口来发送定期消息。它只需要将同样的参数设定到核心消息上即可。
参见Section 11.1.43, “定时消息”,它是一个JMS使用定期消息的例子。