|
@@ -0,0 +1,43 @@
|
|
|
+package com.persagy.job;
|
|
|
+
|
|
|
+import com.persagy.entity.ExpireAlarmMessage;
|
|
|
+import com.persagy.service.AlarmQuartzService;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @description: AlarmMessage消费线程
|
|
|
+ * @author:LuoGuangyi
|
|
|
+ * @company:PersagyTechnologyCo.,Ltd
|
|
|
+ * @since:2021/01/29 17:08
|
|
|
+ * @version:V1.0
|
|
|
+ **/
|
|
|
+@Slf4j
|
|
|
+public class AlarmMessageThread implements Runnable{
|
|
|
+
|
|
|
+ AlarmQuartzService alarmQuartzService;
|
|
|
+
|
|
|
+ public AlarmMessageThread(AlarmQuartzService alarmQuartzService) {
|
|
|
+ this.alarmQuartzService = alarmQuartzService;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ try {
|
|
|
+ System.out.println("--init--");
|
|
|
+ //启动后先休息20秒,这样报警netty websocket quartz都启动了
|
|
|
+ Thread.sleep(20000);
|
|
|
+ while (true){
|
|
|
+ ExpireAlarmMessage expireAlarmMessage = ExpireAlarmQueue.getExpireAlarmMessageQueue().consume();
|
|
|
+ log.info("剩余过期消息总数:{}",ExpireAlarmQueue.getExpireAlarmMessageQueue().size());
|
|
|
+ if("1".equals(expireAlarmMessage.getType())){
|
|
|
+ alarmQuartzService.addExpireJob(expireAlarmMessage.getStartTime(),expireAlarmMessage.getJobName(),expireAlarmMessage.getJobGroupName(),expireAlarmMessage.getJobDataMap());
|
|
|
+ }else if("2".equals(expireAlarmMessage.getType())){
|
|
|
+ alarmQuartzService.deleteExpireJob(expireAlarmMessage.getJobName(),expireAlarmMessage.getJobGroupName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("报警过期消息队列消费失败",e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|