作者 朱兆平

发送线程加锁

... ... @@ -38,7 +38,7 @@ public class IMFNoDelaySender extends Thread{
this.sqlMax=sqlMax;
}
public void run() {
public synchronized void run() {
try {
if (this.client == null) {
... ... @@ -48,7 +48,7 @@ public class IMFNoDelaySender extends Thread{
while(true) {
//初始化读取
logger.info("job start:");
logger.info("job start,发送线程开始:");
int lastFID = Utils.readFIDIndex(this.indexFileName);
int maxFID = this.dao.getMaxFID(sqlMax);
logger.info("lastROW=" + lastFID + " maxCount=" + maxFID);
... ... @@ -119,9 +119,7 @@ public class IMFNoDelaySender extends Thread{
// sendMsg = newXml.finalXmlStr();
if (!"".equals(sendMsg)) {
logger.info("开始发送数据 XML:" + sendMsg);
String is_send_ok = this.client.sendMSG(sendMsg);
logger.info("is_send_ok=" + is_send_ok);
sendXml(sendMsg);
is_ok = Utils.writeFIDIndex(this.indexFileName, m.getRownum_()); //发送成功写入节点文件
logger.debug("FID:" + m.getFid() + " 缓存成功");
++times;
... ... @@ -138,6 +136,7 @@ public class IMFNoDelaySender extends Thread{
}else {
try {
Thread.sleep(10000L);
logger.info("发送线程休眠");
} catch (InterruptedException var3) {
var3.printStackTrace();
}
... ... @@ -150,6 +149,12 @@ public class IMFNoDelaySender extends Thread{
}
}
public synchronized void sendXml(String msg){
logger.info("线程:::"+Thread.currentThread().getName()+"开始发送数据 XML:" + msg);
String is_send_ok = this.client.sendMSG(msg);
logger.info("发送回执=" + is_send_ok);
}
private static String tranlateXML(String xml) throws Exception {
String stype = XMPParse.getNodeValueFromXmlString(xml, "/MSG/META/STYP");
if (!StringUtils.isBlank(stype)) {
... ...