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