fix: running times of job instance is always 0

This commit is contained in:
Echo009 2021-03-02 10:22:28 +08:00
parent 44ae97d6d8
commit bf5f6ef0db

View File

@ -81,8 +81,7 @@ public class InstanceManager {
InstanceStatus receivedInstanceStatus = InstanceStatus.of(req.getInstanceStatus());
Integer timeExpressionType = jobInfo.getTimeExpressionType();
instanceInfo.setStatus(receivedInstanceStatus.getV());
// 更新 最后上报时间 修改时间
instanceInfo.setLastReportTime(req.getReportTime());
instanceInfo.setGmtModified(new Date());
@ -90,7 +89,7 @@ public class InstanceManager {
// FREQUENT 任务的 newStatus 只有2中情况一种是 RUNNING一种是 FAILED表示该机器 overload需要重新选一台机器执行
// 综上直接把 status runningNum 同步到DB即可
if (TimeExpressionType.frequentTypes.contains(timeExpressionType)) {
instanceInfo.setStatus(receivedInstanceStatus.getV());
instanceInfo.setResult(req.getResult());
instanceInfo.setRunningTimes(req.getTotalTaskNum());
instanceInfoRepository.saveAndFlush(instanceInfo);
@ -101,6 +100,8 @@ public class InstanceManager {
// 这里不会存在并发问题
instanceInfo.setRunningTimes(instanceInfo.getRunningTimes() + 1);
}
// QAQ 不能提前变更 status否则会导致更新运行次数的逻辑不生效继而导致普通任务 无限重试
instanceInfo.setStatus(receivedInstanceStatus.getV());
boolean finished = false;
if (receivedInstanceStatus == InstanceStatus.SUCCEED) {