|
|
@@ -43,25 +43,17 @@ import java.time.ZoneId;
|
|
|
@Aspect
|
|
|
@RequiredArgsConstructor
|
|
|
public class TaskInvokeUtil {
|
|
|
-
|
|
|
private final ApplicationEventPublisher publisher;
|
|
|
-
|
|
|
@Autowired
|
|
|
private SysJobService sysJobService;
|
|
|
|
|
|
@SneakyThrows
|
|
|
public void invokeMethod(SysJob sysJob, Trigger trigger, String executionId) {
|
|
|
+ long startTime = System.currentTimeMillis();
|
|
|
|
|
|
- // 执行开始时间
|
|
|
- long startTime;
|
|
|
- // 执行结束时间
|
|
|
- long endTime;
|
|
|
- // 获取执行开始时间
|
|
|
- startTime = System.currentTimeMillis();
|
|
|
- // 更新定时任务表内的状态、执行时间、上次执行时间、下次执行时间等信息
|
|
|
SysJob updateSysjob = new SysJob();
|
|
|
updateSysjob.setJobId(sysJob.getJobId());
|
|
|
- // 日志
|
|
|
+
|
|
|
SysJobLog sysJobLog = new SysJobLog();
|
|
|
sysJobLog.setUuid(executionId);
|
|
|
sysJobLog.setJobId(sysJob.getJobId());
|
|
|
@@ -97,7 +89,6 @@ public class TaskInvokeUtil {
|
|
|
// 任务表信息更新
|
|
|
updateSysjob.setJobExecuteStatus(QuartzEnum.JOB_LOG_STATUS_FAIL.getType());
|
|
|
} finally {
|
|
|
- // 记录执行时间 立刻执行使用的是simpleTeigger
|
|
|
if (trigger instanceof CronTrigger) {
|
|
|
updateSysjob.setStartTime(
|
|
|
trigger.getStartTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
|
|
|
@@ -106,10 +97,10 @@ public class TaskInvokeUtil {
|
|
|
updateSysjob.setNextTime(
|
|
|
trigger.getNextFireTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
|
|
|
}
|
|
|
+
|
|
|
// 记录执行时长
|
|
|
- endTime = System.currentTimeMillis();
|
|
|
+ long endTime = System.currentTimeMillis();
|
|
|
sysJobLog.setExecuteTime(String.valueOf(endTime - startTime));
|
|
|
-
|
|
|
if (QuartzEnum.JOB_LOG_STATUS_SUCCESS.getType().equals(sysJobLog.getJobLogStatus())) {
|
|
|
log.info("[QUARTZ] [{}] 任务完成 | jobId={} jobName={} 耗时={}ms",
|
|
|
executionId, sysJob.getJobId(), sysJob.getJobName(), endTime - startTime);
|