更新定时任务
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user