| | |
| | | if (Objects.isNull(jobIdValue)) { |
| | | return; |
| | | } |
| | | log.info("Check the timed tasks of the wayline. {}", jobIdValue); |
| | | log.info("检查 wayline 的定时任务。 {}", jobIdValue); |
| | | // format: {workspace_id}:{dock_sn}:{job_id} |
| | | String[] jobArr = String.valueOf(jobIdValue).split(RedisConst.DELIMITER); |
| | | double time = RedisOpsUtils.zScore(RedisConst.WAYLINE_JOB_TIMED_EXECUTE, jobIdValue); |
| | |
| | | long now = System.currentTimeMillis(); |
| | | int offset = 30_000; |
| | | |
| | | // Expired tasks are deleted directly. |
| | | // 过期任务会直接删除。 |
| | | if (time < now - offset) { |
| | | log.info("定时任务超时,jobId: {}", jobArr[1]); |
| | | RedisOpsUtils.zRemove(RedisConst.WAYLINE_JOB_TIMED_EXECUTE, jobIdValue); |
| | | waylineJobService.updateJob(WaylineJobDTO.builder() |
| | | .jobId(jobArr[1]) |
| | |
| | | |
| | | if (now <= time && time <= now + offset) { |
| | | try { |
| | | waylineJobService.executeFlightTask(jobArr[2]); |
| | | waylineJobService.executeFlightTask(jobArr[1]); |
| | | } catch (Exception e) { |
| | | log.info("The scheduled task delivery failed."); |
| | | log.info("计划中的任务交付失败了。jobId: {},异常信息:{}", jobArr[1], e.getMessage()); |
| | | waylineJobService.updateJob(WaylineJobDTO.builder() |
| | | .jobId(jobArr[2]) |
| | | .jobId(jobArr[1]) |
| | | .status(WaylineJobStatusEnum.FAILED.getVal()) |
| | | .executeTime(LocalDateTime.now()) |
| | | .completedTime(LocalDateTime.now()) |