Files
msgexchange-api/src/main/java/com/gzzn/omms/msgexchangeapi/runner/MsgExchangeRunner.java
T
2018-12-10 18:10:49 +08:00

65 lines
2.0 KiB
Java

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
}