| | |
| | | public class NavigateUtils { |
| | | |
| | | private static final long STATION_PATH_SLOW_LOG_THRESHOLD_MS = 500L; |
| | | private static final long STATION_PATH_RUNTIME_SNAPSHOT_TTL_MS = 200L; |
| | | private static final long STATION_PATH_RUNTIME_SNAPSHOT_TTL_MS = 2000L; |
| | | private static final double CONGESTION_BUSY_BASE = 1.0d; |
| | | private static final double CONGESTION_ISSUED_RESERVE_BASE = 0.75d; |
| | | private static final double CONGESTION_PENDING_QUEUE_BASE = 0.45d; |
| | |
| | | if (stepCostMap != null) { |
| | | stepCostMap.put("buildBaseSnapshot", elapsedMillis(stepStartNs)); |
| | | } |
| | | cachedRuntimeSnapshot = new CachedStationPathRuntimeSnapshot(now, baseRuntimeSnapshot); |
| | | cachedRuntimeSnapshot = new CachedStationPathRuntimeSnapshot(System.currentTimeMillis(), baseRuntimeSnapshot); |
| | | return baseRuntimeSnapshot; |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | stepStartNs = System.nanoTime(); |
| | | List<StationTaskTraceVo> activeTraceList = Collections.unmodifiableList(new ArrayList<>(loadPlanningActiveTraceList(statusMap))); |
| | | List<StationTaskTraceVo> activeTraceList = Collections.unmodifiableList(new ArrayList<>(loadPlanningActiveTraceList(statusMap, stepCostMap))); |
| | | if (stepCostMap != null) { |
| | | stepCostMap.put("loadActiveTraceList", elapsedMillis(stepStartNs)); |
| | | } |
| | |
| | | } |
| | | |
| | | private List<StationTaskTraceVo> loadPlanningActiveTraceList(Map<Integer, StationProtocol> statusMap) { |
| | | return loadPlanningActiveTraceList(statusMap, null); |
| | | } |
| | | |
| | | private List<StationTaskTraceVo> loadPlanningActiveTraceList(Map<Integer, StationProtocol> statusMap, |
| | | Map<String, Long> stepCostMap) { |
| | | Map<Integer, StationTaskTraceVo> traceMap = new LinkedHashMap<>(); |
| | | if (stationTaskTraceRegistry != null) { |
| | | try { |
| | | long stepStartNs = System.nanoTime(); |
| | | List<StationTaskTraceVo> traceList = stationTaskTraceRegistry.listPlanningActiveTraceSnapshots(); |
| | | if (stepCostMap != null) { |
| | | stepCostMap.put("loadRegistryTraces", elapsedMillis(stepStartNs)); |
| | | } |
| | | if (traceList != null) { |
| | | for (StationTaskTraceVo traceVo : traceList) { |
| | | if (!isPlanningActiveTrace(traceVo)) { |
| | |
| | | } catch (Exception ignore) { |
| | | } |
| | | } |
| | | Map<Integer, StationTaskTraceVo> fallbackTraceMap = loadFallbackActiveTraceMap(null, statusMap, traceMap.keySet()); |
| | | long stepStartNs = System.nanoTime(); |
| | | Map<Integer, StationTaskTraceVo> fallbackTraceMap = Collections.emptyMap(); |
| | | if (traceMap.isEmpty()) { |
| | | fallbackTraceMap = loadFallbackActiveTraceMap(null, statusMap, traceMap.keySet()); |
| | | } |
| | | if (stepCostMap != null) { |
| | | stepCostMap.put("loadFallbackTraces", elapsedMillis(stepStartNs)); |
| | | } |
| | | if (!fallbackTraceMap.isEmpty()) { |
| | | traceMap.putAll(fallbackTraceMap); |
| | | } |
| | |
| | | } |
| | | |
| | | List<Integer> taskNoList = new ArrayList<>(activeTaskProtocolMap.keySet()); |
| | | int limit = Math.max(50, taskNoList.size() * 8); |
| | | int limit = Math.max(taskNoList.size(), taskNoList.size() * 2); |
| | | List<BasStationOpt> optList; |
| | | try { |
| | | optList = basStationOptService.list(new QueryWrapper<BasStationOpt>() |