diff --git a/src/main/java/com/topsail/scheduletask/pojo/InformLog.java b/src/main/java/com/topsail/scheduletask/pojo/InformLog.java index 237d2fb..ec93eee 100644 --- a/src/main/java/com/topsail/scheduletask/pojo/InformLog.java +++ b/src/main/java/com/topsail/scheduletask/pojo/InformLog.java @@ -57,6 +57,7 @@ public class InformLog implements Serializable { */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime = new Date(); - + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date belongTimeHour; } \ No newline at end of file diff --git a/src/main/java/com/topsail/scheduletask/pojo/TopsailTransmitLog.java b/src/main/java/com/topsail/scheduletask/pojo/TopsailTransmitLog.java index 5a45182..000f14f 100644 --- a/src/main/java/com/topsail/scheduletask/pojo/TopsailTransmitLog.java +++ b/src/main/java/com/topsail/scheduletask/pojo/TopsailTransmitLog.java @@ -85,11 +85,19 @@ public class TopsailTransmitLog { /** * 转发结果状态 */ - private Integer forwardResultStatus; + private String forwardResultStatus; /** * 转发时间 */ private String forwardTime; + /** + * 上一次转发时间 + */ + private String lastSourceData; + /** + * 上一次转发时间 + */ + private String lastForwardContent; /** * 上一次转发时间 */ diff --git a/src/main/java/com/topsail/scheduletask/receiver/AmqpListener.java b/src/main/java/com/topsail/scheduletask/receiver/AmqpListener.java index 2d7ed64..3f72e3a 100644 --- a/src/main/java/com/topsail/scheduletask/receiver/AmqpListener.java +++ b/src/main/java/com/topsail/scheduletask/receiver/AmqpListener.java @@ -42,9 +42,9 @@ public class AmqpListener { StringBuffer mailMessage = new StringBuffer(); String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); - String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); + String today = new SimpleDateFormat("yyyy-MM-dd HH:00:00").format(new Date()); Integer count = informLogDao.getNewInformLogCount(subject, today); - if (count == null || (count != null && count < 2)) { + if (count == null || (count != null && count < 1)) { mailMessage.append("尊敬的 ").append(",你好!:
     ").append("截止:").append(time).append("  ").append("堆积消息超过2000条消息未消费,请检查服务器和后台服务程序").append("  ").append("告警队列信息:").append(JSON.toJSONString(jsonObject)); maiSenderlUtil.sendMail("1129801211@qq.com", subject, mailMessage.toString(), true, null, "设备数据流转服务异常"); } @@ -101,6 +101,8 @@ public class AmqpListener { } } else { // 更新记录 + topsailTransmitLog.setLastSourceData(oldTopsailTransmitLog.getSourceData()); + topsailTransmitLog.setLastForwardContent(oldTopsailTransmitLog.getForwardContent()); topsailTransmitLog.setLastForwardTime(oldTopsailTransmitLog.getForwardTime()); int updateResult = topsailTransmitLogDao.updateTopsailTransmitLogByImei(topsailTransmitLog); if (updateResult > 0) { diff --git a/src/main/java/com/topsail/scheduletask/task/CheckRabbitMqScheduleTask.java b/src/main/java/com/topsail/scheduletask/task/CheckRabbitMqScheduleTask.java index 77c8297..c467780 100644 --- a/src/main/java/com/topsail/scheduletask/task/CheckRabbitMqScheduleTask.java +++ b/src/main/java/com/topsail/scheduletask/task/CheckRabbitMqScheduleTask.java @@ -3,13 +3,13 @@ package com.topsail.scheduletask.task; import com.alibaba.fastjson.JSON; import com.topsail.scheduletask.service.AmqpService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.core.env.Environment; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -23,6 +23,8 @@ public class CheckRabbitMqScheduleTask { private Environment env; @Autowired AmqpService amqpService; + @Value("${ignore.mq.queue}") + String ignoreQueue; //1.每个小时定时检查rabbitmq // @Scheduled(cron = "0 0 0/1 * * ?") @@ -30,10 +32,14 @@ public class CheckRabbitMqScheduleTask { //或直接指定时间间隔,例如:5秒 // @Scheduled(fixedRate=5000) private void checkRabbitMqCount() { - //查询rabbitmq的队列名称 + //查询rabbitmq的队列名称 List allQueueNames = amqpService.getAllQueueNames(); Map queueMessageCountMap = new HashMap<>(); for (String queueName : allQueueNames) { + //跳过忽略的队列 + if (queueName.equals(ignoreQueue)) { + continue; + } //获取队列中待消费的消息数量 long count = amqpService.getQueueMessageCount(queueName); if (count > 2000) { @@ -55,6 +61,6 @@ public class CheckRabbitMqScheduleTask { queueMessageCountMap.put("queue3", 3000L); queueMessageCountMap.put("queue4", 4000L); String json = JSON.toJSONString(queueMessageCountMap); - System.out.println( json); + System.out.println(json); } } diff --git a/src/main/java/com/topsail/scheduletask/util/MaiSenderlUtil.java b/src/main/java/com/topsail/scheduletask/util/MaiSenderlUtil.java index 33c1be6..64cd12d 100644 --- a/src/main/java/com/topsail/scheduletask/util/MaiSenderlUtil.java +++ b/src/main/java/com/topsail/scheduletask/util/MaiSenderlUtil.java @@ -15,6 +15,8 @@ import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Component; import javax.mail.internet.MimeMessage; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; /** @@ -28,7 +30,7 @@ import java.util.List; public class MaiSenderlUtil { static final Logger logger = LoggerFactory.getLogger(MaiSenderlUtil.class); - + static final SimpleDateFormat sdfHour = new SimpleDateFormat("yyyy-MM-dd HH:00:00"); @Autowired private JavaMailSender mailSender; @@ -149,6 +151,7 @@ public class MaiSenderlUtil { return Result.error(new CodeMsg(502,"失败")); }finally { try { + informLog.setBelongTimeHour(sdfHour.parse(sdfHour.format(new Date()))); informLogDao.saveInformLog(informLog); }catch (Exception e){ logger.error("保存异常信息失败",e); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 1f9c6db..141bb1a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -56,4 +56,6 @@ monitor.service.timeout=30 monitor.mq.max-accumulation=1000 monitor.mq.max-delay=30000 monitor.dingding.webhook= -monitor.dingding.enabled=false \ No newline at end of file +monitor.dingding.enabled=false + +ignore.mq.queue=shengdilandevicedataall \ No newline at end of file diff --git a/src/main/resources/com/topsail/scheduletask/mapper/TopsailTransmitLogMapper.xml b/src/main/resources/com/topsail/scheduletask/mapper/TopsailTransmitLogMapper.xml index c89775e..c8b2d0d 100644 --- a/src/main/resources/com/topsail/scheduletask/mapper/TopsailTransmitLogMapper.xml +++ b/src/main/resources/com/topsail/scheduletask/mapper/TopsailTransmitLogMapper.xml @@ -23,55 +23,77 @@ + + - INSERT INTO topsail_transmit_log ( - platform,platform_protocol, device_id, imei, device_type, device_type_name, imsi, - source_data, forward_content, forward_user_id, forward_user_name, - forward_url, forward_port, forward_protocol, forward_result,forward_result_status,protocol, forward_desc, - forward_time, last_forward_time - ) VALUES ( - #{platform}, #{platformProtocol}, #{deviceId}, #{imei}, #{deviceType}, #{deviceTypeName}, #{imsi}, - #{sourceData}, #{forwardContent}, #{forwardUserId}, #{forwardUserName}, - #{forwardUrl}, #{forwardPort}, #{forwardProtocol}, #{forwardResult},#{forwardResultStatus},#{protocol}, #{forwardDesc}, - #{forwardTime}, #{lastForwardTime} - ) + INSERT INTO topsail_transmit_log (platform, platform_protocol, device_id, imei, device_type, device_type_name, + imsi, + source_data, forward_content, forward_user_id, forward_user_name, + forward_url, forward_port, forward_protocol, protocol, forward_result, + forward_desc, forward_result_status, + forward_time, last_source_data, last_forward_content, last_forward_time) + VALUES (#{platform}, #{platformProtocol}, #{deviceId}, #{imei}, #{deviceType}, #{deviceTypeName}, #{imsi}, + #{sourceData}, #{forwardContent}, #{forwardUserId}, #{forwardUserName}, + #{forwardUrl}, #{forwardPort}, #{forwardProtocol}, #{protocol}, #{forwardResult}, #{forwardDesc}, + #{forwardResultStatus}, + #{forwardTime}, #{lastSourceData}, #{lastForwardContent}, #{lastForwardTime}) UPDATE topsail_transmit_log - SET platform = #{platform}, - platform_protocol = #{platformProtocol}, - device_id = #{deviceId}, - device_type = #{deviceType}, - device_type_name = #{deviceTypeName}, - imsi = #{imsi}, - source_data = #{sourceData}, - forward_content = #{forwardContent}, - forward_user_id = #{forwardUserId}, - forward_user_name = #{forwardUserName}, - forward_url = #{forwardUrl}, - forward_port = #{forwardPort}, - forward_protocol = #{forwardProtocol}, - forward_result = #{forwardResult}, + SET platform = #{platform}, + platform_protocol = #{platformProtocol}, + device_id = #{deviceId}, + device_type = #{deviceType}, + device_type_name = #{deviceTypeName}, + imsi = #{imsi}, + source_data = #{sourceData}, + forward_content = #{forwardContent}, + forward_user_id = #{forwardUserId}, + forward_user_name = #{forwardUserName}, + forward_url = #{forwardUrl}, + forward_port = #{forwardPort}, + forward_protocol = #{forwardProtocol}, + protocol = #{protocol}, + forward_result = #{forwardResult}, + forward_desc = #{forwardDesc}, forward_result_status = #{forwardResultStatus}, - protocol = #{protocol}, - forward_desc = #{forwardDesc}, - forward_time = #{forwardTime}, - last_forward_time = #{lastForwardTime} + forward_time = #{forwardTime}, + last_source_data = #{lastSourceData}, + last_forward_content = #{lastForwardContent}, + last_forward_time = #{lastForwardTime} WHERE imei = #{imei}