更新定时任务

This commit is contained in:
2025-11-10 16:26:50 +08:00
parent 3190b7d946
commit b7eff6a6dc

View File

@@ -1,13 +1,17 @@
package com.mini.capi.job; package com.mini.capi.api.job;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.mini.capi.biz.domain.BizMonitorHost; import com.mini.capi.biz.domain.BizMonitorHost;
import com.mini.capi.biz.service.BizMonitorHostService; import com.mini.capi.biz.service.BizMonitorHostService;
import com.mini.capi.model.ApiResult;
import com.mini.capi.utils.NetworkUtils; import com.mini.capi.utils.NetworkUtils;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
@@ -15,7 +19,8 @@ import java.util.List;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@Controller @RestController
@RequestMapping("/jobApi")
public class jobController { public class jobController {
@@ -27,10 +32,10 @@ public class jobController {
private ThreadPoolTaskExecutor hostMonitorExecutor; private ThreadPoolTaskExecutor hostMonitorExecutor;
/** /**
* 主机在线状态检测每10分钟检测一次 * 主机在线状态检测
*/ */
@Scheduled(cron = "0 0/10 * * * ?") @GetMapping("getJobMonitHostStatus")
public void getJobMonitHostStatus() { public ApiResult<?> getJobMonitHostStatus() {
List<BizMonitorHost> monitorHosts = bizMonitorHostService.list(); List<BizMonitorHost> monitorHosts = bizMonitorHostService.list();
List<CompletableFuture<Void>> futures = new ArrayList<>(monitorHosts.size()); List<CompletableFuture<Void>> futures = new ArrayList<>(monitorHosts.size());
for (BizMonitorHost monitorHost : monitorHosts) { for (BizMonitorHost monitorHost : monitorHosts) {
@@ -50,11 +55,13 @@ public class jobController {
}, hostMonitorExecutor); // 指定使用配置的线程池 }, hostMonitorExecutor); // 指定使用配置的线程池
futures.add(future); futures.add(future);
} }
try { try {
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])) CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]))
.get(60, TimeUnit.SECONDS); // 超时时间可根据业务调整 .get(60, TimeUnit.SECONDS); // 超时时间可根据业务调整
} catch (Exception e) { } catch (Exception e) {
System.out.println(e.getMessage()); return ApiResult.error(101, e.getMessage());
} }
return ApiResult.success();
} }
} }