📄 mothread.java
字号:
package cn.madhouse.gateway.empp.service;
import java.util.concurrent.ConcurrentLinkedQueue;
import javax.jms.JMSException;
import com.madhouse.wireless.sms.*;
import cn.madhouse.gateway.empp.msgformat.*;
import cn.madhouse.jms.JmsService;
import cn.madhouse.gateway.empp.util.Tools;
public class MoThread extends Thread {
private int sleepTime;
private MessageQueue msgQueue;
private JmsService jmsService;
public MoThread(int sleepTime, MessageQueue msgQueue, JmsService jmsService) {
this.sleepTime = sleepTime;
this.msgQueue = msgQueue;
this.jmsService = jmsService;
}
@Override
public void run() {
ConcurrentLinkedQueue<DeliverRequest> moRequestQueue = msgQueue.getMoRequestQueue();
ConcurrentLinkedQueue<DeliverResponse> moResponseQueue = msgQueue.getMoResponseQueue();
DeliverRequest moReq;
do {
//System.out.println("mo");
moReq = moRequestQueue.poll();
if(moReq != null) {
try {
jmsService.moSend(parseMOSMS(moReq));
System.out.println("mo Content =" + parseMOSMS(moReq).getMessage());
} catch (JMSException e) {
e.printStackTrace();
}
DeliverResponse moResp = genResponse(moReq);
moResponseQueue.offer(moResp);
}
try {
sleep(sleepTime);
} catch (InterruptedException e) {
e.printStackTrace();
}
} while (true);
}
public static DeliverResponse genResponse(DeliverRequest moReq) {
int sequenceId = moReq.getSequenceId();
byte[] msgId = moReq.getMsgId();
int result = 0;
String serviceId = moReq.getServiceId();
DeliverResponse moResp = new DeliverResponse(sequenceId, msgId, result, serviceId);
return moResp;
}
private MOSMS parseMOSMS(DeliverRequest moReq) {
String linkId = moReq.getLinkId();
String destId = moReq.getDestId();
byte[] msgId = moReq.getMsgId();
String msgContent = moReq.getMsgContent();
String serviceId = moReq.getServiceId();
String srcTerminalId = moReq.getSrcTerminalId();
Integer srcTerminalType = moReq.getSrcTerminalType();
MOSMS moSms = new MOSMS();
moSms.setGateway("empp");
moSms.setLinkID(linkId);
moSms.setLongCode(destId);
moSms.setMessage(msgContent);
moSms.setMsgID(Tools.byte2long(msgId));
moSms.setMsgType(WireMessage.MSG_TYPE_SMS);
moSms.setServiceID(serviceId);
moSms.setSrcTermID(srcTerminalId);
moSms.setSrcTermType(srcTerminalType);
return moSms;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -