diff --git a/collector-scheduling-management/src/main/java/com/docus/server/AppRunBootstrap.java b/collector-scheduling-management/src/main/java/com/docus/server/AppRunBootstrap.java index 56e96f3..1f665fd 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/AppRunBootstrap.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/AppRunBootstrap.java @@ -5,6 +5,8 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.scheduling.annotation.EnableAsync; +import javax.annotation.PreDestroy; + @EnableAsync @EnableFeignClients(basePackages = {"com.docus.core.excel.feign", "com.docus.server.api.taskdistribute"}) @SpringBootApplication(scanBasePackages = {"com.docus"}) diff --git a/collector-scheduling-management/src/main/java/com/docus/server/common/TerminatorListener.java b/collector-scheduling-management/src/main/java/com/docus/server/common/TerminatorListener.java new file mode 100644 index 0000000..14dda2f --- /dev/null +++ b/collector-scheduling-management/src/main/java/com/docus/server/common/TerminatorListener.java @@ -0,0 +1,31 @@ +package com.docus.server.common; + +import com.docus.server.entity.scheduling.management.SchTerminator; +import com.docus.server.enums.BusyStateEnum; +import com.docus.server.enums.OnlineStateEnum; +import com.docus.server.service.ISchTerminatorService; +import org.springframework.context.ApplicationListener; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 重启置空 + */ +@Component +public class TerminatorListener implements ApplicationListener { + @Resource + private ISchTerminatorService iSchTerminatorService; + + @Override + public void onApplicationEvent(ContextRefreshedEvent event) { + List terminators = iSchTerminatorService.findAll(); + terminators.forEach(p -> { + p.setBusyState(BusyStateEnum.IDLE); + p.setOnlineState(OnlineStateEnum.OFFLINE); + }); + iSchTerminatorService.batchUpdate(terminators); + } +} diff --git a/collector-scheduling-management/src/main/java/com/docus/server/service/ISchTerminatorService.java b/collector-scheduling-management/src/main/java/com/docus/server/service/ISchTerminatorService.java index dc135ed..af4064f 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/service/ISchTerminatorService.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/service/ISchTerminatorService.java @@ -6,8 +6,11 @@ import com.docus.server.dto.scheduling.management.schterminator.AddSchTerminator import com.docus.server.dto.scheduling.management.schterminator.DeleteSchTerminatorDTO; import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminatorDTO; import com.docus.server.dto.scheduling.management.schterminator.NettyTerminatorDTO; +import com.docus.server.entity.scheduling.management.SchTerminator; import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO; +import java.util.List; + /** * 执行管理器 服务接口 * @@ -62,4 +65,8 @@ public interface ISchTerminatorService { * @return */ SchTerminatorVO saveOrUpdate(String terminatorIp, NettyTerminatorDTO nettyTerminatorDTO); + + List findAll(); + + void batchUpdate(List terminators); } diff --git a/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchTerminatorServiceImpl.java b/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchTerminatorServiceImpl.java index 130fcb1..4421e83 100644 --- a/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchTerminatorServiceImpl.java +++ b/collector-scheduling-management/src/main/java/com/docus/server/service/impl/SchTerminatorServiceImpl.java @@ -18,6 +18,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; +import java.util.List; /** * 执行管理器 服务实现类 @@ -85,6 +86,16 @@ public class SchTerminatorServiceImpl implements ISchTerminatorService { } + @Override + public List findAll() { + return iSchTerminatorDao.findAll(); + } + + @Override + public void batchUpdate(List terminators) { + iSchTerminatorDao.updateBatchById(terminators, 20); + } + /** * 新增 *