package com.zheng.common.util; import org.apache.activemq.ScheduledMessage; import org.springframework.jms.core.JmsTemplate; import org.springframework.jms.core.MessageCreator; import javax.jms.*; import java.io.Serializable; /** * Created by zhangshuzheng on 16/11/24. */ public class JmsUtil { /** * 发送文本消息 * @param jmsTemplate * @param destination * @param textMessage */ public static void sendMessage(JmsTemplate jmsTemplate, Destination destination, final String textMessage) { jmsTemplate.send(destination, new MessageCreator() { public Message createMessage(Session session) throws JMSException { return session.createTextMessage(textMessage); } }); } /** * 发送对象消息 * @param jmsTemplate * @param destination * @param objectMessage */ public static void sendMessage(JmsTemplate jmsTemplate, Destination destination, final Serializable objectMessage) { jmsTemplate.send(destination, new MessageCreator() { public Message createMessage(Session session) throws JMSException { return session.createObjectMessage(objectMessage); } }); } /** * 延迟发送对象消息 * @param jmsTemplate * @param destination * @param objectMessage * @param delay */ public static void sendMessageDelay(JmsTemplate jmsTemplate, Destination destination, final Serializable objectMessage, final long delay) { jmsTemplate.send(destination, new MessageCreator() { public Message createMessage(Session session) throws JMSException { ObjectMessage om = session.createObjectMessage(objectMessage); om.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, delay); om.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_PERIOD, 1 * 1000); om.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_REPEAT, 1); return om; } }); } }