Chapter 26. 定期消息

与普通消息不同,定期消息是在未来某个指定时间发送的消息。

为了创建定期消息,需要设定一个特殊的参数.

26.1. 定期传递参数

用来标识一个定期消息的参数是"_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();
      

也可以使用核心接口来发送定期消息。它只需要将同样的参数设定到核心消息上即可。

26.2. 例子

参见Section 11.1.43, “定时消息”,它是一个JMS使用定期消息的例子。