From c583e5683bac5d11750be01b8a3c4147e8f16026 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 06 十一月 2024 23:21:53 +0800
Subject: [PATCH] 1、opc订阅服务为阻塞模式,配置需要开启多线程 2、新增订阅回调函数,用于执行任务,完成任务时调用 3、目前测试效果来看,一个定时任务只能有一个订阅任务,可订阅多个节点,当某个节点发生变化时,回调任务仅获取变化节点的信息

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java |   23 +++++++++++++++++------
 1 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
index 47b2fd0..57be771 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
@@ -1,12 +1,13 @@
 package com.mes.job;
 
-import com.mes.milo.runner.subscription.SubscriptionCallback;
-import com.mes.milo.service.MiloService;
+import com.kangaroohy.milo.runner.subscription.SubscriptionCallback;
+import com.kangaroohy.milo.service.MiloService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
 import java.util.Arrays;
 
 /**
@@ -18,14 +19,24 @@
 @Slf4j
 public class OpcCacheGlassTask {
 
-    @Autowired
+    @Autowired(required = false)
     MiloService miloService;
 
-    @Autowired
-    SubscriptionCallback cacheGlassSubscriptionCallback;
+    @Resource(name = "cacheGlassStartCallback")
+    SubscriptionCallback cacheGlassStartCallback;
+
+    @Resource(name = "cacheGlassFinishCallback")
+    SubscriptionCallback cacheGlassFinishCallback;
 
     @Scheduled(fixedDelay = Long.MAX_VALUE)
     public void startOpcTask() throws Exception {
-        miloService.subscriptionFromOpcUa(Arrays.asList("my.device.x1", "my.device.x2"), cacheGlassSubscriptionCallback);
+        miloService.subscriptionFromOpcUa(Arrays.asList("my.device01.x1", "my.device02.x1"), cacheGlassStartCallback);
+        log.info("--------------------s---------------------------");
+    }
+
+    @Scheduled(fixedDelay = Long.MAX_VALUE)
+    public void finishOpcTask() throws Exception {
+        miloService.subscriptionFromOpcUa(Arrays.asList("my.device01.x2", "my.device02.x2"), cacheGlassFinishCallback);
+        log.info("--------------------s---------------------------");
     }
 }

--
Gitblit v1.8.0