1
zhang
2025-07-03 13ea8b334572c2423abb8d156fd8428f8d074172
zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/KernelScheduler.java
@@ -2,9 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.acs.manager.core.domain.AgvTaskDto;
import com.zy.acs.manager.core.service.MainLockWrapService;
import com.zy.acs.manager.core.service.MainLxtService;
import com.zy.acs.manager.core.service.TrafficService;
import com.zy.acs.manager.core.service.*;
import com.zy.acs.manager.manager.entity.Bus;
import com.zy.acs.manager.manager.entity.Segment;
import com.zy.acs.manager.manager.entity.Task;
@@ -16,6 +14,8 @@
import com.zy.acs.manager.system.service.ConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -53,13 +53,15 @@
    @Autowired
    private MainLxtService mainService;
    @Autowired
    private MainZkdService mainZkdService;
    @Autowired
    private MainLockWrapService mainLockWrapService;
    @Autowired
    private ActionService actionService;
    @Autowired
    private SegmentService segmentService;
    @Autowired
    private TrafficService trafficService;
    private TrafficZkdService trafficZkdService;
    @Autowired
    private ConfigService configService;
    @Autowired
@@ -67,20 +69,24 @@
    @Autowired
    private AgvModelService agvModelService;
    //@Scheduled(cron = "0/1 * * * * ? ")
    @Scheduled(cron = "0/1 * * * * ? ")
    private void startupBus() throws InterruptedException {
//        if (!configService.getVal("TaskAssignMode", Boolean.class)) { return; }
        if (!this.lock.tryLock(LOCK_TIMEOUT, TimeUnit.SECONDS)) { return; }
        if (!this.lock.tryLock(LOCK_TIMEOUT, TimeUnit.SECONDS)) {
            return;
        }
        List<Bus> busList = busService.selectBySts(BusStsType.RECEIVE);
        for (Bus bus : busList) {
            mainService.allocateTask(bus);
            mainZkdService.allocateTask(bus);
        }
        this.lock.unlock();
    }
    //@Scheduled(cron = "0/1 * * * * ? ")
    private void calculateSeg() throws InterruptedException {
        if (!this.lock.tryLock(LOCK_TIMEOUT, TimeUnit.SECONDS)) { return; }
        if (!this.lock.tryLock(LOCK_TIMEOUT, TimeUnit.SECONDS)) {
            return;
        }
        List<Task> taskList = taskService.selectBySts(TaskStsType.WAITING);
        List<AgvTaskDto> taskDtoList = new ArrayList<>();
@@ -101,9 +107,12 @@
        this.lock.unlock();
    }
    //@EventListener(ApplicationReadyEvent.class)
    @EventListener(ApplicationReadyEvent.class)
    public void init() {
        try { Thread.sleep(1200); } catch (InterruptedException ignore) {}
        try {
            Thread.sleep(1200);
        } catch (InterruptedException ignore) {
        }
        // traffic calculate
        this.trafficCalcThread = new Thread(() -> {
            while (!Thread.currentThread().isInterrupted()) {
@@ -115,7 +124,7 @@
                    );
                    for (Segment segment : segments) {
                        long startTime = System.currentTimeMillis();
                        trafficService.trigger(segment);
                        trafficZkdService.trigger(segment);
//                        log.info("traffic calculation spend {} ms", System.currentTimeMillis() - startTime);
                    }