📄 reportthread.java
字号:
package cn.madhouse.gateway.empp.service;
import java.util.concurrent.ConcurrentLinkedQueue;
import javax.jms.JMSException;
import com.madhouse.wireless.sms.MTReportStatus;
import cn.madhouse.gateway.empp.msgformat.*;
import cn.madhouse.jms.JmsService;
import cn.madhouse.gateway.empp.util.Tools;
public class ReportThread extends Thread {
private int sleepTime;
private MessageQueue msgQueue;
private JmsService jmsService;
public ReportThread(int sleepTime, MessageQueue msgQueue, JmsService jmsService) {
this.sleepTime = sleepTime;
this.msgQueue = msgQueue;
this.jmsService = jmsService;
}
@Override
public void run() {
ConcurrentLinkedQueue<DeliverReport> reportQueue = msgQueue.getReportQueue();
ConcurrentLinkedQueue<DeliverResponse> moResponseQueue = msgQueue.getMoResponseQueue();
DeliverReport report;
do {
//System.out.println("report");
report = reportQueue.poll();
if(report != null) {
System.out.println("report seqId = " + report.getSequenceId2());
try {
jmsService.moSend(parseMtReportStatus(report));
} catch (JMSException e) {
e.printStackTrace();
reportQueue.offer(report);
sleepT(10*1000);
continue;
}
DeliverResponse moResp = MoThread.genResponse(report);
moResponseQueue.offer(moResp);
}
sleepT(sleepTime);
} while (true);
}
private void sleepT(int million) {
try {
sleep(million);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private MTReportStatus parseMtReportStatus(DeliverReport report) {
byte[] msgId2 = report.getMsgId2();
String submitTime = report.getSubmitTime();
String doneTime = report.getDoneTime();
String state = report.getStat();
Integer sendStatus;
if(state.equals(DeliverReport.DELIVERED)) {
sendStatus = 1;
} else sendStatus = -1;
MTReportStatus mtReport = new MTReportStatus();
mtReport.setMsgID(Tools.byte2long(msgId2));
mtReport.setSubmitDate(submitTime);
mtReport.setDoneTime(doneTime);
mtReport.setReportStatus(sendStatus);
mtReport.setReportStatusDesc(state);
return mtReport;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -