...
|
...
|
@@ -28,10 +28,14 @@ public class IMFNoDelaySender extends Thread{ |
|
|
private Dao dao = (DaoImpl)SystemBean.getBean("dao");
|
|
|
private IMFClient client;
|
|
|
private String indexFileName; //记录发送数据的节点
|
|
|
private String sql;
|
|
|
private String sqlMax;
|
|
|
|
|
|
public IMFNoDelaySender(IMFClient client, String fileName) {
|
|
|
public IMFNoDelaySender(IMFClient client, String fileName,String sql,String sqlMax) {
|
|
|
this.indexFileName = fileName;
|
|
|
this.client = client;
|
|
|
this.sql=sql;
|
|
|
this.sqlMax=sqlMax;
|
|
|
}
|
|
|
|
|
|
public void run() {
|
...
|
...
|
@@ -46,12 +50,16 @@ public class IMFNoDelaySender extends Thread{ |
|
|
//初始化读取
|
|
|
logger.info("job start:");
|
|
|
int lastFID = Utils.readFIDIndex(this.indexFileName);
|
|
|
int maxFID = this.dao.getMaxFID();
|
|
|
int maxFID = this.dao.getMaxFID(sqlMax);
|
|
|
logger.info("lastFID=" + lastFID + " maxFID=" + maxFID);
|
|
|
int is_ok = 0;
|
|
|
|
|
|
if (maxFID > lastFID) {
|
|
|
List<MessageBak> list = this.dao.getRecordByFID(lastFID); //查询大于[FID]350的报文
|
|
|
//这里修改从FID_INDEX文件读取的FID ,改为取搜索结果的rownum,此处FID代表ROWNUM
|
|
|
String sqlformat = String.format(sql, lastFID, lastFID, ConfigUtils.RECORD_COUNT);
|
|
|
logger.info(sqlformat);
|
|
|
List<MessageBak> list = this.dao.getRecordByFID(lastFID,sqlformat); //查询大于[FID]350的报文
|
|
|
//如果两个发送者,要用到这里
|
|
|
Map<Integer, XMLHeader> map = ConfigUtils.XML_HEADER_MAP;
|
|
|
Iterator var7 = list.iterator();
|
|
|
|
...
|
...
|
@@ -65,7 +73,7 @@ public class IMFNoDelaySender extends Thread{ |
|
|
if (m.getContent() != null) {
|
|
|
int times = 0;
|
|
|
//配置文件里面有几个sender 这里循环几次
|
|
|
for(Iterator var10 = map.keySet().iterator(); var10.hasNext(); Thread.sleep((long)ConfigUtils.SEND_MESSAGE_INTERVAL)) {
|
|
|
for(Iterator var10 = map.keySet().iterator(); var10.hasNext(); times++) {
|
|
|
Integer key = (Integer)var10.next();
|
|
|
XMLHeader header = (XMLHeader)map.get(key);
|
|
|
logger.info("key=" + key + " value=" + ((XMLHeader)map.get(key)).toString());
|
...
|
...
|
|