@Override
@Transactional(propagation = Propagation.NEVER)
@Scheduled(fixedDelay = 300 * 1000)
public void checkTimeoutTask() {
if (!taskConfig.isEnableCmdExecTimeoutTask()) {
return;
}
LOGGER.traceMarker("checkTimeoutTask", "start");
// find all running status cmd
List<Cmd> workingCmdList = cmdService.listWorkingCmd(null);
for (Cmd cmd : workingCmdList) {
if (cmd.getType() != CmdType.RUN_SHELL || !cmd.isCurrent()) {
continue;
}
if (DateUtil.isTimeOut(cmd.getCreatedDate(), ZonedDateTime.now(), cmd.getTimeout())) {
try {
Cmd killCmd = cmdService.create(new CmdInfo(cmd.getAgentPath(), CmdType.KILL, null));
dispatch(killCmd);
LOGGER.traceMarker("checkTimeoutTask", "Send KILL for timeout cmd %s", cmd);
CmdStatusItem statusItem = new CmdStatusItem(cmd.getId(), CmdStatus.TIMEOUT_KILL, null, true, true);
cmdService.updateStatus(statusItem, false);
} catch (Throwable e) {
LOGGER.warn(e.getMessage());
}
}
}
LOGGER.traceMarker("checkTimeoutTask", "end");
}
CmdDispatchServiceImpl.java 文件源码
java
阅读 19
收藏 0
点赞 0
评论 0
项目:flow-platform
作者:
评论列表
文章目录