feiyu02
2025-06-04 cc2a28ad6b99795d05cd9c923d8f7da27b4509e3
src/main/kotlin/com/flightfeather/uav/biz/sourcetrace/model/PollutedSummary.kt
@@ -53,16 +53,7 @@
    private var analysisTimer: Timer? = null
    // 定时污染分析任务
    private val analysisOnTimeTask = object : TimerTask() {
        override fun run() {
            // 记录任务运行状态
            analysisTaskIsRunning = true
            analysis()
            // 记录上一次的任务结束时间
            lastAnalysisTime = LocalDateTime.now()
            analysisTaskIsRunning = false
        }
    }
    private var lastAnalysisOnTimeTask:TimerTask? = null
    // 定时污染分析任务运行状态
    private var analysisTaskIsRunning = false
@@ -104,10 +95,12 @@
    private fun resetAnalysisOnTime() {
        // 取消原有的分析任务计时
        analysisTimer?.cancel()
        lastAnalysisOnTimeTask?.cancel()
        // 以当前时间为起点,重新开始新的一轮等待计时
        analysisTimer = Timer()
        val period = config.analysisPeriod * 60 * 1000L
        analysisTimer?.schedule(analysisOnTimeTask, period, period)
        lastAnalysisOnTimeTask = newAnalysisTask()
        analysisTimer?.schedule(lastAnalysisOnTimeTask, period, period)
    }
    /**
@@ -116,7 +109,7 @@
     */
    private fun analysisOnClueCount() {
        if (clueList.size >= config.analysisCount && !analysisTaskIsRunning) {
            analysisOnTimeTask.run()
            newAnalysisTask().run()
            resetAnalysisOnTime()
        }
    }
@@ -172,4 +165,18 @@
//        TODO()
    }
    // 定时污染分析任务
    private fun newAnalysisTask(): TimerTask {
        return object : TimerTask() {
            override fun run() {
                // 记录任务运行状态
                analysisTaskIsRunning = true
                analysis()
                // 记录上一次的任务结束时间
                lastAnalysisTime = LocalDateTime.now()
                analysisTaskIsRunning = false
            }
        }
    }
}