fix:(1.2.0-beta2): 修复高并发场景下,定时任务因超时或手动停止,导致的异常重试问题
This commit is contained in:
parent
19b13992cd
commit
ddd79711de
@ -104,6 +104,10 @@ public class JobExecutorFutureCallback implements FutureCallback<ExecuteResult>
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(final Throwable t) {
|
public void onFailure(final Throwable t) {
|
||||||
|
if (t instanceof CancellationException) {
|
||||||
|
SnailJobLog.LOCAL.debug("任务已经被取消,不做状态回传");
|
||||||
|
return;
|
||||||
|
}
|
||||||
ExecuteResult failure = ExecuteResult.failure();
|
ExecuteResult failure = ExecuteResult.failure();
|
||||||
try {
|
try {
|
||||||
// 初始化调度信息(日志上报LogUtil)
|
// 初始化调度信息(日志上报LogUtil)
|
||||||
@ -111,12 +115,7 @@ public class JobExecutorFutureCallback implements FutureCallback<ExecuteResult>
|
|||||||
|
|
||||||
// 上报执行失败
|
// 上报执行失败
|
||||||
SnailJobLog.REMOTE.error("任务执行失败 taskBatchId:[{}]", jobContext.getTaskBatchId(), t);
|
SnailJobLog.REMOTE.error("任务执行失败 taskBatchId:[{}]", jobContext.getTaskBatchId(), t);
|
||||||
|
failure.setMessage(t.getMessage());
|
||||||
if (t instanceof CancellationException) {
|
|
||||||
failure.setMessage("任务被取消");
|
|
||||||
} else {
|
|
||||||
failure.setMessage(t.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
CLIENT.dispatchResult(
|
CLIENT.dispatchResult(
|
||||||
buildDispatchJobResultRequest(failure, JobTaskStatusEnum.FAIL.getStatus())
|
buildDispatchJobResultRequest(failure, JobTaskStatusEnum.FAIL.getStatus())
|
||||||
|
Loading…
Reference in New Issue
Block a user