#
Junjie
23 小时以前 6ac4afd36756de1b97e6730a80c62249af5d6f92
#
1个文件已修改
19 ■■■■■ 已修改文件
src/main/java/com/zy/core/trace/StationTaskTraceRegistry.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/trace/StationTaskTraceRegistry.java
@@ -514,6 +514,9 @@
            }
            this.status = terminalStatus;
            this.blockedStationId = blockedStationId;
            if (shouldClearPathOnTerminal(terminalStatus)) {
                clearPathState();
            }
            this.updatedAt = System.currentTimeMillis();
            this.terminalExpireAt = this.updatedAt + TERMINAL_KEEP_MS;
@@ -525,6 +528,22 @@
            appendEvent(eventType, message, nextDetails);
        }
        private void clearPathState() {
            this.fullPathStationIds = new ArrayList<>();
            this.issuedStationIds = new ArrayList<>();
            this.passedStationIds = new ArrayList<>();
            this.pendingStationIds = new ArrayList<>();
            this.latestIssuedSegmentPath = new ArrayList<>();
            this.segmentList = new ArrayList<>();
            this.issuedSegmentCount = 0;
            this.totalSegmentCount = 0;
        }
        private boolean shouldClearPathOnTerminal(String terminalStatus) {
            return STATUS_BLOCKED.equals(terminalStatus)
                    || STATUS_CANCELLED.equals(terminalStatus);
        }
        private synchronized boolean shouldRemove(long now) {
            return terminalExpireAt != null && terminalExpireAt <= now;
        }