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 | 33 +++++++++++++++++++++++----------
1 files changed, 23 insertions(+), 10 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 165ff7f..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,10 +1,13 @@
package com.mes.job;
+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;
/**
@@ -16,14 +19,24 @@
@Slf4j
public class OpcCacheGlassTask {
-// @Autowired
-// MiloService miloService;
-//
-// @Autowired
-// SubscriptionCallback cacheGlassSubscriptionCallback;
-//
-// @Scheduled(fixedDelay = Long.MAX_VALUE)
-// public void startOpcTask() throws Exception {
-// miloService.subscriptionFromOpcUa(Arrays.asList("my.device.x1", "my.device.x2"), cacheGlassSubscriptionCallback);
-// }
+ @Autowired(required = false)
+ MiloService miloService;
+
+ @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.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