配合前端减少渲染次数,将动态航班信息加入到缓存。隔指定时间xx 后,以数组的形式一次发出。

This commit is contained in:
zhouxiunai
2019-01-17 20:59:43 +08:00
parent 1e8cf60dbb
commit f0dbf1a3b3
8 changed files with 185 additions and 63 deletions
@@ -34,7 +34,8 @@ public class ADFTHandler extends SchdBaseHandler{
flightInfoService.saveFltr(fltr);
this.sendFltrAndMsg(fltr, cminmsg);
this.addToBuffer(fltr);
this.sendMsg(cminmsg);
this.updateCminmsgToProcessed(cminmsg);
@@ -48,7 +49,7 @@ public class ADFTHandler extends SchdBaseHandler{
fltrMafl.getMafl().add(mafldata);
//推送变更后的主航班信息
this.sendFltr(fltrMafl);
this.addToBuffer(fltrMafl);
}
return HandlerResult.success();
@@ -5,7 +5,6 @@ import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.gzzn.omms.msgexchangeapi.dto.ResponseDto;
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
@@ -14,9 +13,9 @@ import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult;
import com.gzzn.omms.msgexchangeapi.msghandler.IBaseHandler;
import com.gzzn.omms.msgexchangeapi.service.ICminmsgService;
import com.gzzn.omms.msgexchangeapi.service.IKafkaService;
import com.gzzn.omms.msgexchangeapi.service.IMsgBufferService;
import com.gzzn.omms.msgexchangeapi.service.exchange.IExchangeService;
import com.gzzn.omms.msgexchangeapi.service.flightInfo.IFlightInfoService;
import com.gzzn.omms.msgexchangeapi.utils.JsonUtil;
import com.gzzn.omms.msgexchangeapi.utils.SpringUtil;
/**
@@ -31,6 +30,7 @@ public class SchdBaseHandler implements IBaseHandler{
protected IFlightInfoService flightInfoService;
protected IKafkaService kafkaservice;
protected ICminmsgService cminmsgService;
protected IMsgBufferService msgbufferservice;
public SchdBaseHandler()
{
@@ -38,6 +38,7 @@ public class SchdBaseHandler implements IBaseHandler{
flightInfoService = (IFlightInfoService) SpringUtil.getBean("flightInfoService");
kafkaservice = (IKafkaService) SpringUtil.getBean("kafkaservice");
cminmsgService = (ICminmsgService) SpringUtil.getBean("cminmsgService");
msgbufferservice = (IMsgBufferService) SpringUtil.getBean("msgbufferservice");
}
@Override
@@ -45,6 +46,15 @@ public class SchdBaseHandler implements IBaseHandler{
return null;
}
/**
* 添加航班动态信息到缓冲区
* @param fltr
*/
protected void addToBuffer(SCHD.FLTR fltr)
{
msgbufferservice.addFltr(fltr);//缓存区
}
/**
* 发送日计划到kafka队列
* @param cminmsg
@@ -80,34 +90,6 @@ public class SchdBaseHandler implements IBaseHandler{
String msg = exchangeService.msgToJson(cminmsg.getMsg());
kafkaservice.msgSend("msg", msg);
}
/**
* 发送航班信息到schd topic ,同时发送动态消息到msg topic
* @param fltr
* @param cminmsg
*/
protected void sendFltrAndMsg(SCHD.FLTR fltr,CminmsgWapper cminmsg)
{
//send schd
String schdMsg = JsonUtil.getString(fltr);
kafkaservice.msgSend("schd", schdMsg);
//send msg
String msg = exchangeService.msgToJson(cminmsg.getMsg());
kafkaservice.msgSend("msg", msg);
}
/**
* 发送动态航班信息
* @param fltr
*/
protected void sendFltr(SCHD.FLTR fltr)
{
//send schd
String schdMsg = JsonUtil.getString(fltr);
kafkaservice.msgSend("schd", schdMsg);
}
/**
* 更新Cminmsg状态为已处理