소스 검색

更新报警

lgy 4 년 전
부모
커밋
41937d6778

+ 4 - 3
src/main/java/com/persagy/init/InitRunner.java

@@ -1,9 +1,11 @@
 package com.persagy.init;
 
 
+import cn.hutool.core.thread.ThreadUtil;
 import com.googlecode.aviator.AviatorEvaluator;
 import com.persagy.client.GroupNettyClient;
 import com.persagy.client.WebSocketClientFactory;
+import com.persagy.job.AlarmMessageThread;
 import com.persagy.service.AlarmQuartzService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,8 +35,7 @@ public class InitRunner implements CommandLineRunner {
 		groupNettyClient.start();
 		//启动websocket,接受IOT采集庶数据
 		webSocketClientFactory.retryOutCallWebSocketClient();
-		//
-		alarmQuartzService.initAlarmMessagehandler();
-
+		//异步消费消息
+		ThreadUtil.execAsync(new AlarmMessageThread(alarmQuartzService),true);
 	}
 }

+ 43 - 0
src/main/java/com/persagy/job/AlarmMessageThread.java

@@ -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);
+        }
+    }
+
+}

+ 0 - 1
src/main/java/com/persagy/service/AlarmQuartzService.java

@@ -13,7 +13,6 @@ import java.util.Date;
  * @version:V1.0
  **/
 public interface AlarmQuartzService {
-    void initAlarmMessagehandler();
 
     String addExpireJob(Date startTime, String jobName, String jobGroupName, JobDataMap jobDataMap) throws SchedulerException;
 

+ 1 - 19
src/main/java/com/persagy/service/impl/AlarmQuartzServiceImpl.java

@@ -32,25 +32,7 @@ public class AlarmQuartzServiceImpl implements AlarmQuartzService {
     @Qualifier("quartzScheduler")
     Scheduler quartzScheduler;
 
-    @Override
-    public void initAlarmMessagehandler() {
-        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())){
-                    addExpireJob(expireAlarmMessage.getStartTime(),expireAlarmMessage.getJobName(),expireAlarmMessage.getJobGroupName(),expireAlarmMessage.getJobDataMap());
-                }else if("2".equals(expireAlarmMessage.getType())){
-                    deleteExpireJob(expireAlarmMessage.getJobName(),expireAlarmMessage.getJobGroupName());
-                }
-            }
-        } catch (Exception e) {
-            log.error("报警过期消息队列消费失败",e);
-        }
-    }
+
     /**
      * 添加定时器
      * @param startTime 添加报警恢复定时任务

+ 24 - 0
src/main/resources/application-39Pj5001120003.yml

@@ -0,0 +1,24 @@
+group:
+  #需要更改
+  code: XG   #标识哪个接团 比如万达使用WD
+  alarm:
+    #需要更改
+    host: 127.0.0.1 #39.102.43.179  #netty IP
+    #需要更改
+    port: 9986          #netty 端口8826
+    #需要更改
+terminal:  #边缘端IOT采集程序地址
+  alarm:  # 拼接后的地址为ws://host:port/suffix
+    #需要更改
+    compress: false    #采用的是压缩方式还是不压缩方式  true-压缩 false-不压缩
+    #需要更改
+    host: 39.102.54.110
+    #需要更改
+    port: 9984 #9989
+    #需要更改
+    suffix: websocket   #websocker后缀
+project:
+  #需要更改
+  iotid: 5001120003 #4403070003  #iot使用项目ID,不包含PJ
+  #需要更改
+  id: Pj5001120003 #Pj4403070003   #项目ID

+ 1 - 1
src/main/resources/application-Pj4403070003.yml

@@ -12,7 +12,7 @@ terminal:  #边缘端IOT采集程序地址
     #需要更改
     compress: false    #采用的是压缩方式还是不压缩方式  true-压缩 false-不压缩
     #需要更改
-    host: 39.102.54.110
+    host: 39.96.55.242  #39.102.54.110
     #需要更改
     port: 9984
     #需要更改

+ 1 - 1
src/main/resources/application.yml

@@ -6,7 +6,7 @@ spring:
   application:
     name: zkt-project-alarm
   profiles:
-    active: Pj5001120003
+    active: Pj4403070003
   datasource:
     #需要更改
     url: jdbc:mysql://39.102.43.179:9934/alarm-quartz?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false

+ 1 - 1
src/main/resources/quartz.properties

@@ -33,7 +33,7 @@ org.quartz.jobStore.clusterCheckinInterval=10000
 org.quartz.jobStore.useProperties=true
 #在被认为“misfired”(失火)之前,调度程序将“tolerate(容忍)”一个Triggers(触发器)将其下一个启动时间通过的毫秒数。默认值(如果您在配置中未输入此属性)为60000(60秒)
 org.quartz.jobStore.misfireThreshold=600000
-#
+org.quartz.jobStore.txIsolationLevelSerializable=false
 ##默认C3P0方式配置数据库,connectionProvider方式可以指定,但是高级属性配置很不方便,不推荐
 #org.quartz.jobStore.dataSource = qzDS
 #org.quartz.dataSource.qzDS.driver = com.mysql.jdbc.Driver