activeMQ启用延时投递
延时投递属性:
Property name | type | description |
AMQ_SCHEDULED_DELAY | long | 延迟投递的时间 |
AMQ_SCHEDULED_PERIOD | long | 重复投递时间间隔 |
AMQ_SCHEDULED_REPEAT | int | 重复投递次数 |
AMQ_SCHEDULED_CRON | String | Cron表达式 |
步骤1、首先要修改activemq.xml配置文件,启用延时投递
1 <broker xmlns="http://activemq.apache.org/schema/core" ... schedulerSupport="true" >
2 ...
3 </broker>
即:在broker节点加上schedulerSupport="true",然后重启activemq
步骤2、
在生产message的时候设置参数
public Message createMessage(Session session) throws JMSException {
Message m = session.createTextMessage(message);
m.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, 5*1000);
m.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_PERIOD, 5*1000);
m.setIntProperty(ScheduledMessage.AMQ_SCHEDULED_REPEAT, 9);
return m;
}
只需打开activeMQ控制台就可以看到延时投递的效果