1.新增pro生产环境配置。

2.新增CMINMSGS和COUTMSGS 脚本
3.去除启动自动获取最新动态的功能。
4.完善测试以上功能。修改Sender为OSH5
This commit is contained in:
zhouxiunai
2018-12-29 17:30:43 +08:00
parent 440864110e
commit f799c64682
11 changed files with 443 additions and 264 deletions
+6
View File
@@ -126,6 +126,12 @@
<version>1.2.15</version> <version>1.2.15</version>
</dependency> </dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
@@ -11,12 +11,11 @@ import java.util.Date;
*/ */
@Entity @Entity
@Table(name="CMINMSGS") @Table(name="CMINMSGS")
@SequenceGenerator(name = "sequenceGenerator", sequenceName = "SEQ_CMINMSGS")
public class Cminmsg implements Serializable { public class Cminmsg implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Id @Id
@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="sequenceGenerator") @GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="CMINMSGS_ID") @Column(name="CMINMSGS_ID")
private long cminmsgsId; private long cminmsgsId;
@@ -1,136 +1,190 @@
package com.gzzn.omms.msgexchangeapi.entity; package com.gzzn.omms.msgexchangeapi.entity;
import java.io.Serializable; import java.io.Serializable;
import javax.persistence.*; import javax.persistence.*;
import java.util.Date; import java.util.Date;
/** /**
* The persistent class for the CMINMSGS database table. * The persistent class for the COUTMSGS database table.
* *
*/ */
@Entity @Entity
@Table(name="CMOUTMSGS") @Table(name="COUTMSGS")
public class Cmoutmsg implements Serializable { public class Cmoutmsg implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@Id @Id
@GeneratedValue(strategy=GenerationType.SEQUENCE) @GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="CMINMSGS_ID") @Column(name="COUTMSGS_ID")
private long cminmsgsId; private int coutmsgsId;
@Temporal(TemporalType.TIMESTAMP)
@Column(name="COUTMSGS_ACK_DATE_RECV")
private Date coutmsgsAckDateRecv;
@Column(name="COUTMSGS_ACK_REQD")
private int coutmsgsAckReqd;
@Column(name="COUTMSGS_ACK_RESEND_TIMES")
private int coutmsgsAckResendTimes;
@Lob @Lob
@Column(name="CMINMSGS_CLOB_MSG") @Column(name="COUTMSGS_CLOB_MSG")
private String cminmsgsClobMsg; private String coutmsgsClobMsg;
@Temporal(TemporalType.TIMESTAMP) @Temporal(TemporalType.TIMESTAMP)
@Column(name="CMINMSGS_DATE_PROCESSED") @Column(name="COUTMSGS_DATE_INSERTED")
private Date cminmsgsDateProcessed; private Date coutmsgsDateInserted;
@Temporal(TemporalType.TIMESTAMP) @Temporal(TemporalType.TIMESTAMP)
@Column(name="CMINMSGS_DATE_RECEIVED") @Column(name="COUTMSGS_DATE_SENT")
private Date cminmsgsDateReceived; private Date coutmsgsDateSent;
@Column(name="CMINMSGS_STATUS") @Column(name="COUTMSGS_ENCRYPT")
private String cminmsgsStatus; private int coutmsgsEncrypt;
@Temporal(TemporalType.TIMESTAMP) @Column(name="COUTMSGS_ERROR")
@Column(name="CMINMSGS_SUBSYSTEM_DATE_SENT") private int coutmsgsError;
private Date cminmsgsSubsystemDateSent;
@Column(name="CMINMSGS_SUBSYSTEM_NAME") @Column(name="COUTMSGS_FINAL_GROUP_IND")
private String cminmsgsSubsystemName; private int coutmsgsFinalGroupInd;
@Column(name="CMINMSGS_SUBSYSTEM_SEQUENCE") @Column(name="COUTMSGS_GROUP_ID")
private String cminmsgsSubsystemSequence; private int coutmsgsGroupId;
@Column(name="CMINMSGS_SUBSYSTEM_SUBTYPE") @Column(name="COUTMSGS_GROUP_ORDER")
private String cminmsgsSubsystemSubtype; private int coutmsgsGroupOrder;
@Column(name="CMINMSGS_SUBSYSTEM_TYPE") @Column(name="COUTMSGS_NO_MESSAGES")
private String cminmsgsSubsystemType; private int coutmsgsNoMessages;
@Column(name="COUTMSGS_TRUEFALS_GROUP")
private int coutmsgsTruefalsGroup;
@Column(name="ROUTINGID")
private String routingid;
public Cmoutmsg() { public Cmoutmsg() {
} }
public long getCminmsgsId() { public int getCoutmsgsId() {
return this.cminmsgsId; return this.coutmsgsId;
} }
public void setCminmsgsId(long cminmsgsId) { public void setCoutmsgsId(int coutmsgsId) {
this.cminmsgsId = cminmsgsId; this.coutmsgsId = coutmsgsId;
} }
public String getCminmsgsClobMsg() { public Date getCoutmsgsAckDateRecv() {
return this.cminmsgsClobMsg; return this.coutmsgsAckDateRecv;
} }
public void setCminmsgsClobMsg(String cminmsgsClobMsg) { public void setCoutmsgsAckDateRecv(Date coutmsgsAckDateRecv) {
this.cminmsgsClobMsg = cminmsgsClobMsg; this.coutmsgsAckDateRecv = coutmsgsAckDateRecv;
} }
public Date getCminmsgsDateProcessed() { public int getCoutmsgsAckReqd() {
return this.cminmsgsDateProcessed; return this.coutmsgsAckReqd;
} }
public void setCminmsgsDateProcessed(Date cminmsgsDateProcessed) { public void setCoutmsgsAckReqd(int coutmsgsAckReqd) {
this.cminmsgsDateProcessed = cminmsgsDateProcessed; this.coutmsgsAckReqd = coutmsgsAckReqd;
} }
public Date getCminmsgsDateReceived() { public int getCoutmsgsAckResendTimes() {
return this.cminmsgsDateReceived; return this.coutmsgsAckResendTimes;
} }
public void setCminmsgsDateReceived(Date cminmsgsDateReceived) { public void setCoutmsgsAckResendTimes(int coutmsgsAckResendTimes) {
this.cminmsgsDateReceived = cminmsgsDateReceived; this.coutmsgsAckResendTimes = coutmsgsAckResendTimes;
} }
public String getCminmsgsStatus() { public String getCoutmsgsClobMsg() {
return this.cminmsgsStatus; return this.coutmsgsClobMsg;
} }
public void setCminmsgsStatus(String cminmsgsStatus) { public void setCoutmsgsClobMsg(String coutmsgsClobMsg) {
this.cminmsgsStatus = cminmsgsStatus; this.coutmsgsClobMsg = coutmsgsClobMsg;
} }
public Date getCminmsgsSubsystemDateSent() { public Date getCoutmsgsDateInserted() {
return this.cminmsgsSubsystemDateSent; return this.coutmsgsDateInserted;
} }
public void setCminmsgsSubsystemDateSent(Date cminmsgsSubsystemDateSent) { public void setCoutmsgsDateInserted(Date coutmsgsDateInserted) {
this.cminmsgsSubsystemDateSent = cminmsgsSubsystemDateSent; this.coutmsgsDateInserted = coutmsgsDateInserted;
} }
public String getCminmsgsSubsystemName() { public Date getCoutmsgsDateSent() {
return this.cminmsgsSubsystemName; return this.coutmsgsDateSent;
} }
public void setCminmsgsSubsystemName(String cminmsgsSubsystemName) { public void setCoutmsgsDateSent(Date coutmsgsDateSent) {
this.cminmsgsSubsystemName = cminmsgsSubsystemName; this.coutmsgsDateSent = coutmsgsDateSent;
} }
public String getCminmsgsSubsystemSequence() { public int getCoutmsgsEncrypt() {
return this.cminmsgsSubsystemSequence; return this.coutmsgsEncrypt;
} }
public void setCminmsgsSubsystemSequence(String cminmsgsSubsystemSequence) { public void setCoutmsgsEncrypt(int coutmsgsEncrypt) {
this.cminmsgsSubsystemSequence = cminmsgsSubsystemSequence; this.coutmsgsEncrypt = coutmsgsEncrypt;
} }
public String getCminmsgsSubsystemSubtype() { public int getCoutmsgsError() {
return this.cminmsgsSubsystemSubtype; return this.coutmsgsError;
} }
public void setCminmsgsSubsystemSubtype(String cminmsgsSubsystemSubtype) { public void setCoutmsgsError(int coutmsgsError) {
this.cminmsgsSubsystemSubtype = cminmsgsSubsystemSubtype; this.coutmsgsError = coutmsgsError;
} }
public String getCminmsgsSubsystemType() { public int getCoutmsgsFinalGroupInd() {
return this.cminmsgsSubsystemType; return this.coutmsgsFinalGroupInd;
} }
public void setCminmsgsSubsystemType(String cminmsgsSubsystemType) { public void setCoutmsgsFinalGroupInd(int coutmsgsFinalGroupInd) {
this.cminmsgsSubsystemType = cminmsgsSubsystemType; this.coutmsgsFinalGroupInd = coutmsgsFinalGroupInd;
}
public int getCoutmsgsGroupId() {
return this.coutmsgsGroupId;
}
public void setCoutmsgsGroupId(int coutmsgsGroupId) {
this.coutmsgsGroupId = coutmsgsGroupId;
}
public int getCoutmsgsGroupOrder() {
return this.coutmsgsGroupOrder;
}
public void setCoutmsgsGroupOrder(int coutmsgsGroupOrder) {
this.coutmsgsGroupOrder = coutmsgsGroupOrder;
}
public int getCoutmsgsNoMessages() {
return this.coutmsgsNoMessages;
}
public void setCoutmsgsNoMessages(int coutmsgsNoMessages) {
this.coutmsgsNoMessages = coutmsgsNoMessages;
}
public int getCoutmsgsTruefalsGroup() {
return this.coutmsgsTruefalsGroup;
}
public void setCoutmsgsTruefalsGroup(int coutmsgsTruefalsGroup) {
this.coutmsgsTruefalsGroup = coutmsgsTruefalsGroup;
}
public String getRoutingid() {
return this.routingid;
}
public void setRoutingid(String routingid) {
this.routingid = routingid;
} }
} }
@@ -64,7 +64,7 @@ import javax.xml.bind.annotation.XmlType;
public enum SUBSYSTEMS { public enum SUBSYSTEMS {
AODB, AODB,
OMMS, OSH5,
BHS, BHS,
FIDS, FIDS,
RMS, RMS,
@@ -73,6 +73,7 @@ public class FlopBaseHandler implements IBaseHandler {
} }
else { else {
//没有该动态航班信息 //没有该动态航班信息
this.updateCminmsgToProcessed(cminmsg);
logger.warn("没有flid为:{}的消息",flop.getFLID()); logger.warn("没有flid为:{}的消息",flop.getFLID());
return HandlerResult.failure(); return HandlerResult.failure();
} }
@@ -1,7 +1,8 @@
package com.gzzn.omms.msgexchangeapi.runner; package com.gzzn.omms.msgexchangeapi.runner;
import java.util.Date;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -12,7 +13,6 @@ import org.springframework.stereotype.Component;
import com.gzzn.omms.msgexchangeapi.redis.RedisKeyConstant; import com.gzzn.omms.msgexchangeapi.redis.RedisKeyConstant;
import com.gzzn.omms.msgexchangeapi.redis.RedisService; import com.gzzn.omms.msgexchangeapi.redis.RedisService;
import com.gzzn.omms.msgexchangeapi.service.ICmoutmsgService;
@Component @Component
public class AppRunner implements CommandLineRunner { public class AppRunner implements CommandLineRunner {
@@ -22,28 +22,26 @@ public class AppRunner implements CommandLineRunner {
@Autowired @Autowired
RedisService redisService; RedisService redisService;
@Autowired
private ICmoutmsgService cmoutmsgService;
@Value("${msgExchange.waitDateLeftOffset}") @Value("${msgExchange.waitDateLeftOffset}")
private Long waitDateLeftOffset; private Long waitDateLeftOffset;
@Value("${msgExchange.intervalSeconds}")
private Long intervalSeconds;
@Override @Override
public void run(String... args) throws Exception { public void run(String... args) throws Exception {
logger.info("发送获取动态航班日计划的消息"); logger.info("app runner start");
Date nowDate = new Date();
Date waitDate = new Date(nowDate.getTime() - waitDateLeftOffset);//往后偏移指定时钟,避免因不同应用系统时钟相差过大导致的问题。
cmoutmsgService.sendSchdGetMsg(null,null);//发送获取当天日计划的申请
// //
redisService.set(RedisKeyConstant.KEY_ISWAITSCHD, true); //等待返回日计划状态 redisService.set(RedisKeyConstant.KEY_LASTBEGINID,0L);
redisService.set(RedisKeyConstant.KEY_WAITSCHDDATE,waitDate); //初始化消息进度
logger.info("发送获取动态航班日计划的消息完成");
Executors.newFixedThreadPool(1).execute(new SchdWaitRunner()); //启动消息采集线程
ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
scheduledExecutorService.scheduleAtFixedRate(new MsgExchangeRunner(), 0, intervalSeconds , TimeUnit.SECONDS);
logger.info("app runner end");
}//end function run }//end function run
} }
@@ -1,5 +1,6 @@
package com.gzzn.omms.msgexchangeapi.service; package com.gzzn.omms.msgexchangeapi.service;
import java.math.BigInteger;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
@@ -28,13 +29,15 @@ public class CmoutmsgServiceImpl implements ICmoutmsgService {
public Boolean sendSchdGetMsg(Date startDate,Date endDate) public Boolean sendSchdGetMsg(Date startDate,Date endDate)
{ {
Long nowtime = System.currentTimeMillis();
//构造消息 //构造消息
MSG rqfdMsg = new MSGBuilder(). MSG rqfdMsg = new MSGBuilder().
setMETA( setMETA(
new METABuilder() new METABuilder()
.setSNDR(SUBSYSTEMS.OMMS) .setSNDR(SUBSYSTEMS.OSH5)
.setTYPE(MESSAGETYPES.RQFD) .setTYPE(MESSAGETYPES.RQFD)
.setSTYP(MESSAGESUBTYPES.NONE) .setSTYP(MESSAGESUBTYPES.NONE)
.setDTTM(new BigInteger(nowtime.toString()))
.build() .build()
) )
.build(); .build();
@@ -53,8 +56,9 @@ public class CmoutmsgServiceImpl implements ICmoutmsgService {
//发送消息到数据库 //发送消息到数据库
Cmoutmsg cmoutmsg = new Cmoutmsg(); Cmoutmsg cmoutmsg = new Cmoutmsg();
cmoutmsg.setCminmsgsClobMsg(exchangeService.objectToXmlstr(rqfdMsg)); cmoutmsg.setCoutmsgsDateInserted(new Date());
cmoutmsg.setCminmsgsStatus("VALID"); cmoutmsg.setCoutmsgsClobMsg(exchangeService.objectToXmlstr(rqfdMsg));
cmoutmsg.setRoutingid(SUBSYSTEMS.OSH5.name());
Cmoutmsg rtCmoutmsg = cmoutmsgDao.save(cmoutmsg); Cmoutmsg rtCmoutmsg = cmoutmsgDao.save(cmoutmsg);
+86
View File
@@ -0,0 +1,86 @@
spring:
jpa:
hibernate:
ddl-auto: none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
datasource:
username: root
password: gzzn09ap
url: jdbc:mysql://172.17.35.162:3306/cdairport?useSSL=false&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&autoReconnect=true
tomcat:
max-active: 30
test-on-borrow: true
initial-size: 3
redis:
password:
database: 1
port: 6379
pool:
max-idle: 10
min-idle: 0
max-active: 200
max-wait: -1
host: 172.17.35.165
timeout: 1000
kafka:
producer:
retries: 0
servers: 172.17.35.161:32796,172.17.35.161:32797,172.17.35.161:32798
linger: 1
batch:
size: 4096
buffer:
memory: 10240000
max:
request:
size: 10240000
consumer:
auto:
offset:
reset: latest
commit:
interval: 100
servers: 172.17.35.161:32796,172.17.35.161:32797,172.17.35.161:32798
zookeeper:
connect: 172.17.35.161:2181
session:
timeout: 6000
enable:
auto:
commit: true
topic: test
concurrency: 10
group:
id: test
msgExchange:
intervalSeconds: 5
waitDateLeftOffset: 600000
logstash:
host: 172.17.35.160:5000
scheduled:
#每日凌晨3:30分点采集历史数据 0 30 3 * * ?
flightInfoCron: 0 30 3 * * ?
corePoolSize: 10
maxPoolSize: 50
queueCapacity: 10
#计入历史航班数据的条件
hstCondition:
#航班到达超过多久则成为历史航班数据(单位:秒)
ARRIVE_HST_TIME: 3600
#航班取消超过多久则成为历史航班数据(单位:秒)
CANCEL_HST_TIME: 3600
#备降超过多久则成为历史航班数据 FROM CTU 本应降落到成都备降到其他地方(单位:秒)
FDIV_HST_TIME: 59400
#计划时间超过多久则成为历史航班数据(单位:秒)
SODT_HST_TIME: 259200
# Elasticsearch
# 9200端口是用来让HTTP REST API来访问ElasticSearch,而9300端口是传输层监听的默认端口
elasticsearch:
ip: 172.17.35.160
port: 9300
pool: 5
#注意cluster.name需要与config/elasticsearch.yml中的cluster.name一致
cluster:
name: docker-cluster
+1 -1
View File
@@ -1,3 +1,3 @@
spring: spring:
profiles: profiles:
active: dev active: pro
@@ -0,0 +1,13 @@
CREATE TABLE CMINMSGS
(
CMINMSGS_ID int(23) not null AUTO_INCREMENT PRIMARY KEY,
CMINMSGS_CLOB_MSG LONGTEXT not null,
CMINMSGS_DATE_RECEIVED datetime(0),
CMINMSGS_DATE_PROCESSED datetime(0),
CMINMSGS_SUBSYSTEM_NAME VARCHAR(4),
CMINMSGS_SUBSYSTEM_SEQUENCE int(6),
CMINMSGS_SUBSYSTEM_DATE_SENT datetime(0),
CMINMSGS_SUBSYSTEM_SUBTYPE VARCHAR(4),
CMINMSGS_SUBSYSTEM_TYPE VARCHAR(4),
CMINMSGS_STATUS VARCHAR(20)
);
@@ -0,0 +1,18 @@
CREATE TABLE COUTMSGS
(
COUTMSGS_ID int(23) not null AUTO_INCREMENT PRIMARY KEY,
COUTMSGS_CLOB_MSG LONGTEXT,
COUTMSGS_DATE_INSERTED datetime(0) DEFAULT current_timestamp() not null,
COUTMSGS_DATE_SENT datetime(0),
ROUTINGID VARCHAR(23) not null,
COUTMSGS_TRUEFALS_GROUP int(1) default 0 not null,
COUTMSGS_NO_MESSAGES int(2),
COUTMSGS_GROUP_ORDER int(2),
COUTMSGS_GROUP_ID int(6),
COUTMSGS_FINAL_GROUP_IND int(1) default 0 not null,
COUTMSGS_ACK_REQD int(1) default 0 not null,
COUTMSGS_ACK_RESEND_TIMES int(4) default 0 not null,
COUTMSGS_ACK_DATE_RECV datetime(0),
COUTMSGS_ENCRYPT int(1) default 0 not null,
COUTMSGS_ERROR int(1) default 0 not null
);