|
|
@@ -0,0 +1,62 @@
|
|
|
+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 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 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;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+}
|