修复阻塞处理策略设置为“丢弃后续调度“,只有第一次调度正常执行,后面的所有调度都被丢弃了的问题

pull/22/head
Xuanye Wong 5 years ago
parent 617ee68288
commit 279916ae07
  1. 1
      build/releasenotes.props
  2. 2
      build/version.props
  3. 11
      samples/ASPNetCoreExecutor/DemoJobHandler.cs
  4. 9
      src/DotXxlJob.Core/JobDispatcher.cs
  5. 7
      src/DotXxlJob.Core/Queue/JobTaskQueue.cs

@ -3,6 +3,7 @@
<DotXxlJobPackageNotes>
1. 修改异步方式读取RequestBody
2. 兼容xxl-jobv2.3版本回调函数参数变更的问题
3. 修复阻塞处理策略设置为“丢弃后续调度“,只有第一次调度正常执行,后面的所有调度都被丢弃了的问题
</DotXxlJobPackageNotes>
</PropertyGroup>
</Project>

@ -1,5 +1,5 @@
<Project>
<PropertyGroup>
<DotXxlJobPackageVersion>2.3.0</DotXxlJobPackageVersion>
<DotXxlJobPackageVersion>2.3.1</DotXxlJobPackageVersion>
</PropertyGroup>
</Project>

@ -10,11 +10,14 @@ namespace ASPNetCoreExecutor
[JobHandler("demoJobHandler")]
public class DemoJobHandler:AbstractJobHandler
{
public override Task<ReturnT> Execute(JobExecuteContext context)
{
public override async Task<ReturnT> Execute(JobExecuteContext context)
{
context.JobLogger.Log("receive demo job handler,parameter:{0}",context.JobParameter);
return Task.FromResult(ReturnT.SUCCESS);
context.JobLogger.Log("开始休眠120秒");
//
await Task.Delay(10 * 1000);
context.JobLogger.Log("休眠120秒结束");
return ReturnT.SUCCESS;
}
}
}

@ -82,7 +82,12 @@ namespace DotXxlJob.Core
//丢弃后续的
if (Constants.ExecutorBlockStrategy.DISCARD_LATER == triggerParam.ExecutorBlockStrategy)
{
return ReturnT.Failed($"block strategy effect:{triggerParam.ExecutorBlockStrategy}");
//存在还没执行完成的任务
if (taskQueue.IsRunning())
{
return ReturnT.Failed($"block strategy effect:{triggerParam.ExecutorBlockStrategy}");
}
//否则还是继续做
}
//覆盖较早的
if (Constants.ExecutorBlockStrategy.COVER_EARLY == triggerParam.ExecutorBlockStrategy)
@ -109,7 +114,7 @@ namespace DotXxlJob.Core
}
private void TriggerCallback(object sender, HandleCallbackParam callbackParam)
{
{
this._callbackTaskQueue.Push(callbackParam);
}

@ -27,8 +27,15 @@ namespace DotXxlJob.Core
public event EventHandler<HandleCallbackParam> CallBack;
public bool IsRunning()
{
return _cancellationTokenSource !=null;
}
/// <summary>
/// 覆盖之前的队列

Loading…
Cancel
Save