ActiveMq深入学习 第二波
ActiveMQ调度延时发送队列消息是重要的特性之一,下面我来介绍一下它的主要功能:
ActiveMQ在Broker端提供了消息定时调度功能,可以根据我们的需求去定制想要实现的效果,如延时一定时间发送给消费者、消息间隔一段时间发送一次等等。
Activemq已经提供了对应的延时属性接口-----org.apache.activemq.ScheduledMessage
---AMQ_SCHEDULED_DELAY消息延时发送的延时时间(单位毫秒)
---AMQ_SCHEDULED_PERIOD重复投递时间间隔(单位毫秒)
---AMQ_SCHEDULED_REPEAT重复投递次数
---AMQ_SCHEDULED_CRONcron表达式,设置消息发送调度
@Autowired
@Qualifier("jmsQueueTemplate")
private JmsTemplate jmsTemplate;//通过@Qualifier修饰符来注入对应的bean
jmsTemplate.send(queueName, new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
TextMessage mes = session.createTextMessage(message);
//设置延时时间
return mes;
mes.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, delayTime);
}
});
注:需要修改active.xml开启schedule