重构完善消息收取机制。修改到MsgExchangeRunner中收取。
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package com.gzzn.omms.msgexchangeapi.runner;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.MsgHandlerDispatcher;
|
||||
import com.gzzn.omms.msgexchangeapi.redis.RedisKeyConstant;
|
||||
import com.gzzn.omms.msgexchangeapi.redis.RedisService;
|
||||
import com.gzzn.omms.msgexchangeapi.service.ICminmsgService;
|
||||
import com.gzzn.omms.msgexchangeapi.utils.SpringUtil;
|
||||
|
||||
/**
|
||||
* 消息获取分派类
|
||||
* @author zhouxiunai
|
||||
*
|
||||
*/
|
||||
public class MsgExchangeRunner implements Runnable{
|
||||
private static Logger logger = LoggerFactory.getLogger(MsgExchangeRunner.class);
|
||||
|
||||
private MsgHandlerDispatcher msgHandlerDispatcher;
|
||||
private RedisService redisService;
|
||||
private ICminmsgService cminmsgService;
|
||||
|
||||
public MsgExchangeRunner() {
|
||||
redisService = (RedisService) SpringUtil.getBean("redisService");
|
||||
cminmsgService = (ICminmsgService) SpringUtil.getBean("cminmsgService");
|
||||
msgHandlerDispatcher = (MsgHandlerDispatcher) SpringUtil.getBean("msgHandlerDispatcher");
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
logger.info("进入获取动态航班消息...");
|
||||
|
||||
//获取上次的beginId
|
||||
Integer beginIdInt = (Integer)redisService.get(RedisKeyConstant.KEY_LASTBEGINID);
|
||||
Long beginId = beginIdInt.longValue();
|
||||
|
||||
logger.info("从上次获取的消息位置{}开始",beginId);
|
||||
|
||||
|
||||
//获取航班动态消息
|
||||
List<Cminmsg> lsCminmsgs = cminmsgService.getNewMsgsAfterId(beginId);
|
||||
if(null == lsCminmsgs || lsCminmsgs.size() <= 0)
|
||||
{
|
||||
logger.info("本周期没有获取到最新消息,直接退出本次循环");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
logger.info("获取到{}条最新信息,准备更新动态航班信息",lsCminmsgs.size());
|
||||
|
||||
//分发消息进行处理
|
||||
for (Cminmsg cminmsg : lsCminmsgs) {
|
||||
msgHandlerDispatcher.dispatch(cminmsg);
|
||||
}//end for
|
||||
|
||||
|
||||
logger.info("本次定时获取新消息完成...");
|
||||
}//end run
|
||||
}
|
||||
Reference in New Issue
Block a user