feat(sj_1.0.0): 定时任务手动重试添加超时检查
This commit is contained in:
parent
6f727af7d0
commit
945c77bdc0
@ -28,7 +28,7 @@
|
||||
<akka.version>2.6.21</akka.version>
|
||||
<java-jwt.version>4.4.0</java-jwt.version>
|
||||
<perf4j.version>0.9.16</perf4j.version>
|
||||
<guava.version>32.0.0-jre</guava.version>
|
||||
<guava.version>33.2.0-jre</guava.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
|
@ -10,6 +10,7 @@ import com.aizuda.snailjob.common.core.enums.JobTaskStatusEnum;
|
||||
import com.aizuda.snailjob.server.common.akka.ActorGenerator;
|
||||
import com.aizuda.snailjob.server.common.enums.JobTaskExecutorSceneEnum;
|
||||
import com.aizuda.snailjob.server.common.exception.SnailJobServerException;
|
||||
import com.aizuda.snailjob.server.common.util.DateUtils;
|
||||
import com.aizuda.snailjob.server.job.task.dto.TaskExecuteDTO;
|
||||
import com.aizuda.snailjob.server.job.task.enums.JobRetrySceneEnum;
|
||||
import com.aizuda.snailjob.server.job.task.support.ClientCallbackHandler;
|
||||
@ -19,6 +20,8 @@ import com.aizuda.snailjob.server.job.task.support.callback.ClientCallbackContex
|
||||
import com.aizuda.snailjob.server.job.task.support.callback.ClientCallbackFactory;
|
||||
import com.aizuda.snailjob.server.job.task.support.stop.JobTaskStopFactory;
|
||||
import com.aizuda.snailjob.server.job.task.support.stop.TaskStopJobContext;
|
||||
import com.aizuda.snailjob.server.job.task.support.timer.JobTimeoutCheckTask;
|
||||
import com.aizuda.snailjob.server.job.task.support.timer.JobTimerWheel;
|
||||
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobMapper;
|
||||
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobTaskBatchMapper;
|
||||
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobTaskMapper;
|
||||
@ -29,6 +32,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -57,7 +61,8 @@ public class JobHandler {
|
||||
|
||||
// 重置状态为运行中
|
||||
jobTaskBatch.setTaskBatchStatus(JobTaskBatchStatusEnum.RUNNING.getStatus());
|
||||
|
||||
// 重置状态原因
|
||||
jobTaskBatch.setOperationReason(JobOperationReasonEnum.NONE.getReason());
|
||||
Assert.isTrue(jobTaskBatchMapper.updateById(jobTaskBatch) > 0,
|
||||
() -> new SnailJobServerException("update job batch to running failed."));
|
||||
|
||||
@ -104,6 +109,11 @@ public class JobHandler {
|
||||
clientCallback.callback(context);
|
||||
}
|
||||
|
||||
// 运行中的任务,需要进行超时检查
|
||||
JobTimerWheel.registerWithJob(() -> new JobTimeoutCheckTask(taskBatchId, job.getId()),
|
||||
// 加500ms是为了让尽量保证客户端自己先超时中断,防止客户端上报成功但是服务端已触发超时中断
|
||||
Duration.ofMillis(DateUtils.toEpochMilli(job.getExecutorTimeout()) + 500));
|
||||
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user