feiyu02
2023-11-07 7f580342dce92cb321e2566ef9a02827435a2de2
src/main/java/com/flightfeather/monitor/scheduledtasks/TaskController.kt
@@ -1,6 +1,7 @@
package com.flightfeather.monitor.scheduledtasks
import cn.flightfeather.supervision.timingtask.BaseTimingTask
import lombok.extern.slf4j.Slf4j
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.stereotype.Component
import java.time.LocalDateTime
@@ -15,21 +16,16 @@
 */
@Component
class TaskController(
        /*实例名 类名*/
//    fetchVOC: TaskFetchVOC,
//    pushFume: TaskPushFume,
//    ledgerCopy: TaskLedgerCopy,
//    ledgerRemind: TaskLedgerRemind,
//    taskJinAnLampEnterBaseInfo: TaskJinAnLampEnterBaseInfo,
//    taskJinAnLampDeviceData: TaskJinAnLampDeviceData,
//    taskJinAnConstructionSiteInfo: TaskJinAnConstructionSiteInfo,
//    taskJinAnHourlyDustData: TaskJinAnHourlyDustData
    dustExceptionAnalysisTask: DustExceptionAnalysisTask,
    dustDailyStatisticAnalysisTask: DustDailyStatisticAnalysisTask,
    dustMonthlyStatisticAnalysisTask: DustMonthlyStatisticAnalysisTask,
    dustAnalysisTask: DustAnalysisTask,
) {
    companion object {
        private const val FETCH_PERIOD_MIN = 1L * 60
        private const val MAINTAIN_PERIOD_MIN = 5L * 60
        val LOGGER = LoggerFactory.getLogger(TaskController::class.java)
        private const val FETCH_PERIOD_MIN = 15L
        private const val MAINTAIN_PERIOD_MIN = 15L
        val log: Logger = LoggerFactory.getLogger(TaskController::class.java)
    }
    private val timeTask = mutableListOf<BaseTimingTask>()
@@ -39,13 +35,13 @@
    private var maintainTime: Date = Date()
    init {
        LOGGER.info("添加定时任务")
        log.info("添加定时任务")
        timeTask.clear()
       /*做的定时任务加进来*/
        LOGGER.info("添加定时任务完成,任务总计${timeTask.size}个")
//        timeTask.add(dustExceptionAnalysisTask)
//        timeTask.add(dustDailyStatisticAnalysisTask)
//        timeTask.add(dustMonthlyStatisticAnalysisTask)
        timeTask.add(dustAnalysisTask)
        log.info("添加定时任务完成,任务总计${timeTask.size}个")
    }
    fun run() {
@@ -54,10 +50,9 @@
    }
    private fun fetchTask(isFirst: Boolean = false) {
        val cal = Calendar.getInstance()
        val time = LocalTime.now()
        val sec = time.second
        val delay = 60L - sec
        val min = time.minute
        val delay = FETCH_PERIOD_MIN - min % FETCH_PERIOD_MIN
//        var localtime = LocalDateTime.of(2021, 4, 16, 9, 0)
        if (!isFirst) {
            schedule = closeThread(schedule)
@@ -75,7 +70,7 @@
                it.execute(localtime)
            }
//            localtime = localtime.plusMinutes(1)
        }, delay, FETCH_PERIOD_MIN, TimeUnit.SECONDS)
        }, delay, FETCH_PERIOD_MIN, TimeUnit.MINUTES)
    }
    private fun maintainTask(isFirst: Boolean = false) {
@@ -87,7 +82,7 @@
            if (Date().time - taskTime.time > (FETCH_PERIOD_MIN + 1) * 60 * 1000) {
                fetchTask()
            }
        }, 0, MAINTAIN_PERIOD_MIN, TimeUnit.SECONDS)
        }, 0, MAINTAIN_PERIOD_MIN, TimeUnit.MINUTES)
    }
    private fun closeThread(s: ScheduledExecutorService): ScheduledExecutorService {