📄 mtthread.java
字号:
package cn.madhouse.gateway.empp.service;
import java.util.Map;
import java.util.concurrent.ConcurrentLinkedQueue;
import javax.jms.JMSException;
import com.madhouse.wireless.sms.MTReportStatus;
import cn.madhouse.gateway.empp.msgformat.*;
import cn.madhouse.gateway.empp.util.Tools;
import cn.madhouse.jms.JmsService;
public class MtThread extends Thread {
private int sleepTime;
private MessageQueue msgQueue;
private JmsService jmsService;
public MtThread(int sleepTime, MessageQueue msgQueue, JmsService jmsService) {
this.sleepTime = sleepTime;
this.msgQueue = msgQueue;
this.jmsService = jmsService;
}
@Override
public void run() {
ConcurrentLinkedQueue<SubmitResponse> mtResponseQueue = msgQueue.getMtResponseQueue();
SubmitResponse mtResp;
do {
//System.out.println("mt");
mtResp = mtResponseQueue.poll();
if(mtResp != null) {
MTReportStatus mtReport = parseMtResponse(mtResp);
if(mtReport != null) {
try {
jmsService.moSend(parseMtResponse(mtResp));
} catch (JMSException e) {
e.printStackTrace();
mtResponseQueue.offer(mtResp);
sleepT(10*1000);
continue;
}
}
}
sleepT(sleepTime);
} while (true);
}
private void sleepT(int million) {
try {
sleep(million);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private MTReportStatus parseMtResponse(SubmitResponse mtResp) {
Map<Integer,Long> sequenseId_idMap = msgQueue.getSequenseId_idMap();
int sequenceId = mtResp.getSequenceId();
Long id = sequenseId_idMap.get(sequenceId);
if(id == null) return null;
byte[] msgId = mtResp.getMsgId();
Integer result = mtResp.getResult();
MTReportStatus mtReport = new MTReportStatus();
mtReport.setId(id);
mtReport.setMsgID(Tools.byte2long(msgId));
mtReport.setReportStatusDesc(result.toString());
return mtReport;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -