Browse Source

优化日志更新

master
bgy 2 months ago
parent
commit
58f12901b8
7 changed files with 87 additions and 43 deletions
  1. +2
    -1
      src/main/java/com/topsail/scheduletask/pojo/InformLog.java
  2. +9
    -1
      src/main/java/com/topsail/scheduletask/pojo/TopsailTransmitLog.java
  3. +4
    -2
      src/main/java/com/topsail/scheduletask/receiver/AmqpListener.java
  4. +9
    -3
      src/main/java/com/topsail/scheduletask/task/CheckRabbitMqScheduleTask.java
  5. +4
    -1
      src/main/java/com/topsail/scheduletask/util/MaiSenderlUtil.java
  6. +3
    -1
      src/main/resources/application.properties
  7. +56
    -34
      src/main/resources/com/topsail/scheduletask/mapper/TopsailTransmitLogMapper.xml

+ 2
- 1
src/main/java/com/topsail/scheduletask/pojo/InformLog.java View File

@ -57,6 +57,7 @@ public class InformLog implements Serializable {
*/ */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime = new Date(); private Date createTime = new Date();
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date belongTimeHour;
} }

+ 9
- 1
src/main/java/com/topsail/scheduletask/pojo/TopsailTransmitLog.java View File

@ -85,11 +85,19 @@ public class TopsailTransmitLog {
/** /**
* 转发结果状态 * 转发结果状态
*/ */
private Integer forwardResultStatus;
private String forwardResultStatus;
/** /**
* 转发时间 * 转发时间
*/ */
private String forwardTime; private String forwardTime;
/**
* 上一次转发时间
*/
private String lastSourceData;
/**
* 上一次转发时间
*/
private String lastForwardContent;
/** /**
* 上一次转发时间 * 上一次转发时间
*/ */


+ 4
- 2
src/main/java/com/topsail/scheduletask/receiver/AmqpListener.java View File

@ -42,9 +42,9 @@ public class AmqpListener {
StringBuffer mailMessage = new StringBuffer(); StringBuffer mailMessage = new StringBuffer();
String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); 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); Integer count = informLogDao.getNewInformLogCount(subject, today);
if (count == null || (count != null && count < 2)) {
if (count == null || (count != null && count < 1)) {
mailMessage.append("尊敬的&nbsp;").append(",你好!:<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;").append("截止:").append(time).append("&nbsp;&nbsp;").append("堆积消息超过2000条消息未消费,请检查服务器和后台服务程序").append("&nbsp;&nbsp;").append("告警队列信息:").append(JSON.toJSONString(jsonObject)); mailMessage.append("尊敬的&nbsp;").append(",你好!:<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;").append("截止:").append(time).append("&nbsp;&nbsp;").append("堆积消息超过2000条消息未消费,请检查服务器和后台服务程序").append("&nbsp;&nbsp;").append("告警队列信息:").append(JSON.toJSONString(jsonObject));
maiSenderlUtil.sendMail("1129801211@qq.com", subject, mailMessage.toString(), true, null, "设备数据流转服务异常"); maiSenderlUtil.sendMail("1129801211@qq.com", subject, mailMessage.toString(), true, null, "设备数据流转服务异常");
} }
@ -101,6 +101,8 @@ public class AmqpListener {
} }
} else { } else {
// 更新记录 // 更新记录
topsailTransmitLog.setLastSourceData(oldTopsailTransmitLog.getSourceData());
topsailTransmitLog.setLastForwardContent(oldTopsailTransmitLog.getForwardContent());
topsailTransmitLog.setLastForwardTime(oldTopsailTransmitLog.getForwardTime()); topsailTransmitLog.setLastForwardTime(oldTopsailTransmitLog.getForwardTime());
int updateResult = topsailTransmitLogDao.updateTopsailTransmitLogByImei(topsailTransmitLog); int updateResult = topsailTransmitLogDao.updateTopsailTransmitLogByImei(topsailTransmitLog);
if (updateResult > 0) { if (updateResult > 0) {


+ 9
- 3
src/main/java/com/topsail/scheduletask/task/CheckRabbitMqScheduleTask.java View File

@ -3,13 +3,13 @@ package com.topsail.scheduletask.task;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.topsail.scheduletask.service.AmqpService; import com.topsail.scheduletask.service.AmqpService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -23,6 +23,8 @@ public class CheckRabbitMqScheduleTask {
private Environment env; private Environment env;
@Autowired @Autowired
AmqpService amqpService; AmqpService amqpService;
@Value("${ignore.mq.queue}")
String ignoreQueue;
//1.每个小时定时检查rabbitmq //1.每个小时定时检查rabbitmq
// @Scheduled(cron = "0 0 0/1 * * ?") // @Scheduled(cron = "0 0 0/1 * * ?")
@ -30,10 +32,14 @@ public class CheckRabbitMqScheduleTask {
//或直接指定时间间隔例如5秒 //或直接指定时间间隔例如5秒
// @Scheduled(fixedRate=5000) // @Scheduled(fixedRate=5000)
private void checkRabbitMqCount() { private void checkRabbitMqCount() {
//查询rabbitmq的队列名称
//查询rabbitmq的队列名称
List<String> allQueueNames = amqpService.getAllQueueNames(); List<String> allQueueNames = amqpService.getAllQueueNames();
Map<String, Long> queueMessageCountMap = new HashMap<>(); Map<String, Long> queueMessageCountMap = new HashMap<>();
for (String queueName : allQueueNames) { for (String queueName : allQueueNames) {
//跳过忽略的队列
if (queueName.equals(ignoreQueue)) {
continue;
}
//获取队列中待消费的消息数量 //获取队列中待消费的消息数量
long count = amqpService.getQueueMessageCount(queueName); long count = amqpService.getQueueMessageCount(queueName);
if (count > 2000) { if (count > 2000) {
@ -55,6 +61,6 @@ public class CheckRabbitMqScheduleTask {
queueMessageCountMap.put("queue3", 3000L); queueMessageCountMap.put("queue3", 3000L);
queueMessageCountMap.put("queue4", 4000L); queueMessageCountMap.put("queue4", 4000L);
String json = JSON.toJSONString(queueMessageCountMap); String json = JSON.toJSONString(queueMessageCountMap);
System.out.println( json);
System.out.println(json);
} }
} }

+ 4
- 1
src/main/java/com/topsail/scheduletask/util/MaiSenderlUtil.java View File

@ -15,6 +15,8 @@ import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -28,7 +30,7 @@ import java.util.List;
public class MaiSenderlUtil { public class MaiSenderlUtil {
static final Logger logger = LoggerFactory.getLogger(MaiSenderlUtil.class); static final Logger logger = LoggerFactory.getLogger(MaiSenderlUtil.class);
static final SimpleDateFormat sdfHour = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
@Autowired @Autowired
private JavaMailSender mailSender; private JavaMailSender mailSender;
@ -149,6 +151,7 @@ public class MaiSenderlUtil {
return Result.error(new CodeMsg(502,"失败")); return Result.error(new CodeMsg(502,"失败"));
}finally { }finally {
try { try {
informLog.setBelongTimeHour(sdfHour.parse(sdfHour.format(new Date())));
informLogDao.saveInformLog(informLog); informLogDao.saveInformLog(informLog);
}catch (Exception e){ }catch (Exception e){
logger.error("保存异常信息失败",e); logger.error("保存异常信息失败",e);


+ 3
- 1
src/main/resources/application.properties View File

@ -56,4 +56,6 @@ monitor.service.timeout=30
monitor.mq.max-accumulation=1000 monitor.mq.max-accumulation=1000
monitor.mq.max-delay=30000 monitor.mq.max-delay=30000
monitor.dingding.webhook= monitor.dingding.webhook=
monitor.dingding.enabled=false
monitor.dingding.enabled=false
ignore.mq.queue=shengdilandevicedataall

+ 56
- 34
src/main/resources/com/topsail/scheduletask/mapper/TopsailTransmitLogMapper.xml View File

@ -23,55 +23,77 @@
<result column="forward_result_status" property="forwardResultStatus"/> <result column="forward_result_status" property="forwardResultStatus"/>
<result column="forward_time" property="forwardTime"/> <result column="forward_time" property="forwardTime"/>
<result column="last_forward_time" property="lastForwardTime"/> <result column="last_forward_time" property="lastForwardTime"/>
<result column="last_source_data" property="lastSourceData"/>
<result column="last_forward_content" property="lastForwardContent"/>
</resultMap> </resultMap>
<!-- 根据 IMEI 查询记录 --> <!-- 根据 IMEI 查询记录 -->
<select id="getTopsailTransmitLogByImei" resultMap="BaseResultMap"> <select id="getTopsailTransmitLogByImei" resultMap="BaseResultMap">
SELECT 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
SELECT 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
FROM topsail_transmit_log FROM topsail_transmit_log
WHERE imei = #{imei}
LIMIT 1
WHERE imei = #{imei} LIMIT 1
</select> </select>
<!-- 新增记录 --> <!-- 新增记录 -->
<insert id="insertTopsailTransmitLog" parameterType="com.topsail.scheduletask.pojo.TopsailTransmitLog"> <insert id="insertTopsailTransmitLog" parameterType="com.topsail.scheduletask.pojo.TopsailTransmitLog">
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})
</insert> </insert>
<!-- 根据 IMEI 更新记录 --> <!-- 根据 IMEI 更新记录 -->
<update id="updateTopsailTransmitLogByImei" parameterType="com.topsail.scheduletask.pojo.TopsailTransmitLog"> <update id="updateTopsailTransmitLogByImei" parameterType="com.topsail.scheduletask.pojo.TopsailTransmitLog">
UPDATE topsail_transmit_log 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}, 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} WHERE imei = #{imei}
</update> </update>


Loading…
Cancel
Save