From 9b8ff50b66361c4b56074b7586b2d5951ecf2091 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 02 四月 2026 15:02:14 +0800
Subject: [PATCH] #优化运行速度
---
src/main/java/com/zy/core/plugin/GslProcess.java | 64 ++++++++-----------------------
1 files changed, 17 insertions(+), 47 deletions(-)
diff --git a/src/main/java/com/zy/core/plugin/GslProcess.java b/src/main/java/com/zy/core/plugin/GslProcess.java
index ac2dbf7..ba7b541 100644
--- a/src/main/java/com/zy/core/plugin/GslProcess.java
+++ b/src/main/java/com/zy/core/plugin/GslProcess.java
@@ -23,7 +23,6 @@
import com.zy.core.plugin.store.StoreInTaskContext;
import com.zy.core.plugin.store.StoreInTaskGenerationService;
import com.zy.core.plugin.store.StoreInTaskPolicy;
-import com.zy.core.task.MainProcessAsyncTaskScheduler;
import com.zy.core.thread.StationThread;
import com.zy.core.utils.CrnOperateProcessUtils;
import com.zy.core.utils.StationOperateProcessUtils;
@@ -37,12 +36,8 @@
@Slf4j
@Component
public class GslProcess implements MainProcessPluginApi, StoreInTaskPolicy {
- private static final String CRN_TASK_LANE = "crn";
- private static final String STATION_TASK_LANE = "station";
- private static final String GENERATE_STORE_TASK_LANE_PREFIX = "generate-store-";
private static final long DISPATCH_INTERVAL_MS = 200L;
private static final long MAINTENANCE_INTERVAL_MS = 500L;
- private static final long TASK_SLOW_LOG_THRESHOLD_MS = 1000L;
@Autowired
private CrnOperateProcessUtils crnOperateUtils;
@@ -58,8 +53,6 @@
private StoreInTaskGenerationService storeInTaskGenerationService;
@Autowired
private StationCommandDispatcher stationCommandDispatcher;
- @Autowired
- private MainProcessAsyncTaskScheduler mainProcessAsyncTaskScheduler;
@Override
public void run() {
@@ -68,29 +61,28 @@
//璇锋眰鐢熸垚鍏ュ簱浠诲姟锛屼繚鐣欐寜绔欑偣 lane 涓茶鎻愪氦
generateStoreWrkFile();
- //鍫嗗灈鏈轰笌杈撻�佺珯鐐归兘鎸夊崟涓换鍔℃彁浜ゅ埌鍚勮嚜涓茶閫氶亾锛岄�愪釜鎵ц
- // 鍫嗗灈鏈烘墽琛屽叆鍑哄簱涓绘祦绋�
- submitCrnTask("crnIoExecute", DISPATCH_INTERVAL_MS, crnOperateUtils::crnIoExecute);
- // 鍫嗗灈鏈烘敹灏惧苟鎺ㄨ繘鍚庣画鐘舵��
- submitCrnTask("crnIoExecuteFinish", DISPATCH_INTERVAL_MS, crnOperateUtils::crnIoExecuteFinish);
- // 杈撻�佺嚎鎵ц鍏ュ簱浠诲姟涓嬪彂
- submitStationTask("stationInExecute", DISPATCH_INTERVAL_MS, stationOperateProcessUtils::stationInExecute);
+ // 鎵ц鍫嗗灈鏈轰换鍔�
+ crnOperateUtils.submitCrnIoTasks(DISPATCH_INTERVAL_MS);
+ // 鍫嗗灈鏈轰换鍔℃墽琛屽畬鎴�
+ crnOperateUtils.submitCrnIoExecuteFinishTasks(DISPATCH_INTERVAL_MS);
+ // 鎵ц杈撻�佺珯鐐瑰叆搴撲换鍔�
+ stationOperateProcessUtils.submitStationInTasks(DISPATCH_INTERVAL_MS);
+ // 妫�娴嬪叆搴撲换鍔℃槸鍚﹀凡缁忓埌杈剧洰鏍囩珯鍙�
+ stationOperateProcessUtils.submitInboundStationArrivalTasks(DISPATCH_INTERVAL_MS);
// 杈撻�佺嚎鎵ц鍫嗗灈鏈哄嚭搴撳悗鐨勭珯鍙版祦杞�
- submitStationTask("crnStationOutExecute", DISPATCH_INTERVAL_MS, stationOperateProcessUtils::crnStationOutExecute);
- // 楂橀妫�娴嬪嚭搴撲换鍔℃槸鍚﹀凡缁忓埌杈剧洰鏍囩珯鍙�
- submitStationTask("stationOutExecuteFinish", DISPATCH_INTERVAL_MS, stationOperateProcessUtils::stationOutExecuteFinish);
- // 楂橀妫�娴嬪叆搴撲换鍔℃槸鍚﹀凡缁忓埌杈剧洰鏍囩珯鍙�
- submitStationTask("scanInboundStationArrival", DISPATCH_INTERVAL_MS, stationOperateProcessUtils::scanInboundStationArrival);
+ stationOperateProcessUtils.submitCrnStationOutTasks(DISPATCH_INTERVAL_MS);
+ // 妫�娴嬪嚭搴撲换鍔℃槸鍚﹀凡缁忓埌杈剧洰鏍囩珯鍙�
+ stationOperateProcessUtils.submitStationOutExecuteFinishTasks(DISPATCH_INTERVAL_MS);
// 妫�娴嬬珯鍙拌繍琛屽畬鎴愬悗鐨勪换鍔¤浆瀹屾垚
- submitStationTask("checkTaskToComplete", DISPATCH_INTERVAL_MS, stationOperateProcessUtils::checkTaskToComplete);
+ stationOperateProcessUtils.submitCheckTaskToCompleteTasks(DISPATCH_INTERVAL_MS);
// 妫�娴嬪苟澶勭悊鍑哄簱鎺掑簭
- submitStationTask("checkStationOutOrder", MAINTENANCE_INTERVAL_MS, stationOperateProcessUtils::checkStationOutOrder);
+ stationOperateProcessUtils.submitCheckStationOutOrderTasks(MAINTENANCE_INTERVAL_MS);
// 鐩戞帶杈撻�佺嚎缁曞湀绔欑偣
- submitStationTask("watchCircleStation", MAINTENANCE_INTERVAL_MS, stationOperateProcessUtils::watchCircleStation);
+ stationOperateProcessUtils.submitWatchCircleStationTasks(MAINTENANCE_INTERVAL_MS);
// 妫�娴嬭緭閫佺嚎杩愯鍫靛
- submitStationTask("checkStationRunBlock", MAINTENANCE_INTERVAL_MS, stationOperateProcessUtils::checkStationRunBlock);
+ stationOperateProcessUtils.submitCheckStationRunBlockTasks(MAINTENANCE_INTERVAL_MS);
// 妫�娴嬬珯鍙扮┖闂茶秴鏃跺悗鐨勬仮澶嶅鐞�
- submitStationTask("checkStationIdleRecover", MAINTENANCE_INTERVAL_MS, stationOperateProcessUtils::checkStationIdleRecover);
+ stationOperateProcessUtils.submitCheckStationIdleRecoverTasks(MAINTENANCE_INTERVAL_MS);
}
@Override
@@ -178,10 +170,6 @@
}
}
- private void submitStationTask(String taskName, long minIntervalMs, Runnable task) {
- submitProcessTask(STATION_TASK_LANE, taskName, minIntervalMs, task);
- }
-
private void generateStoreWrkFile() {
List<BasDevp> basDevps = basDevpService.list(new QueryWrapper<>());
for (BasDevp basDevp : basDevps) {
@@ -207,7 +195,7 @@
if (!canRequestStoreIn(stationMap.get(stationId))) {
continue;
}
- submitGenerateStoreTask(stationId, DISPATCH_INTERVAL_MS,
+ storeInTaskGenerationService.submitGenerateStoreTask(this, basDevp, stationObjModel, DISPATCH_INTERVAL_MS,
() -> storeInTaskGenerationService.generate(this, basDevp, stationObjModel));
}
}
@@ -220,24 +208,6 @@
&& stationProtocol.isInEnable()
&& stationProtocol.getTaskNo() > 0
&& !Cools.isEmpty(stationProtocol.getBarcode());
- }
-
- private void submitGenerateStoreTask(Integer stationId, long minIntervalMs, Runnable task) {
- submitProcessTask(GENERATE_STORE_TASK_LANE_PREFIX + stationId, "generateStoreWrkFile", minIntervalMs, task);
- }
-
- private void submitCrnTask(String taskName, long minIntervalMs, Runnable task) {
- submitProcessTask(CRN_TASK_LANE, taskName, minIntervalMs, task);
- }
-
- private void submitProcessTask(String laneName, String taskName, long minIntervalMs, Runnable task) {
- mainProcessAsyncTaskScheduler.submit(
- laneName,
- taskName,
- minIntervalMs,
- TASK_SLOW_LOG_THRESHOLD_MS,
- task
- );
}
}
--
Gitblit v1.9.1