From 9a4260fa0dd106a26a3ae47a201c0ca3358a7288 Mon Sep 17 00:00:00 2001 From: leiyuan Date: Wed, 2 Mar 2022 12:49:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=B6=85=E6=97=B6=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/DotXxlJob.Core/Queue/JobTaskQueue.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/DotXxlJob.Core/Queue/JobTaskQueue.cs b/src/DotXxlJob.Core/Queue/JobTaskQueue.cs index 523049c..85347a3 100644 --- a/src/DotXxlJob.Core/Queue/JobTaskQueue.cs +++ b/src/DotXxlJob.Core/Queue/JobTaskQueue.cs @@ -129,11 +129,19 @@ namespace DotXxlJob.Core _jobLogger.Log("
----------- xxl-job job execute start -----------
----------- Param:{0}", triggerParam.ExecutorParams); var exectorToken = ct; + CancellationTokenSource timeoutCts = null; if (triggerParam.ExecutorTimeout > 0) { - exectorToken = CancellationTokenSource.CreateLinkedTokenSource(exectorToken, new CancellationTokenSource(triggerParam.ExecutorTimeout * 1000).Token).Token; + timeoutCts = new CancellationTokenSource(triggerParam.ExecutorTimeout * 1000); + exectorToken = CancellationTokenSource.CreateLinkedTokenSource(exectorToken, timeoutCts.Token).Token; } result = await Executor.Execute(triggerParam, exectorToken); + if(timeoutCts != null && timeoutCts.IsCancellationRequested) + { + result = ReturnT.FAIL_TIMEOUT; + timeoutCts.Dispose(); + timeoutCts = null; + } _jobLogger.Log("
----------- xxl-job job execute end(finish) -----------
----------- ReturnT:" + result.Code); }