|
|
|
@ -4,7 +4,6 @@ using System.Threading.Tasks;
|
|
|
|
|
using Quartz;
|
|
|
|
|
using Volo.Abp.DependencyInjection;
|
|
|
|
|
using Volo.Abp.DynamicProxy;
|
|
|
|
|
using Volo.Abp.Threading;
|
|
|
|
|
|
|
|
|
|
namespace Volo.Abp.BackgroundWorkers.Quartz;
|
|
|
|
|
|
|
|
|
@ -34,12 +33,12 @@ public class QuartzBackgroundWorkerManager : IBackgroundWorkerManager, ISingleto
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public virtual async Task AddAsync(IBackgroundWorker worker)
|
|
|
|
|
public virtual async Task AddAsync(IBackgroundWorker worker, CancellationToken cancellationToken = default)
|
|
|
|
|
{
|
|
|
|
|
await ReScheduleJobAsync(worker);
|
|
|
|
|
await ReScheduleJobAsync(worker, cancellationToken);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual async Task ReScheduleJobAsync(IBackgroundWorker worker)
|
|
|
|
|
protected virtual async Task ReScheduleJobAsync(IBackgroundWorker worker, CancellationToken cancellationToken = default)
|
|
|
|
|
{
|
|
|
|
|
if (worker is IQuartzBackgroundWorker quartzWork)
|
|
|
|
|
{
|
|
|
|
@ -52,7 +51,7 @@ public class QuartzBackgroundWorkerManager : IBackgroundWorkerManager, ISingleto
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
await DefaultScheduleJobAsync(quartzWork);
|
|
|
|
|
await DefaultScheduleJobAsync(quartzWork, cancellationToken);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
@ -65,22 +64,22 @@ public class QuartzBackgroundWorkerManager : IBackgroundWorkerManager, ISingleto
|
|
|
|
|
|
|
|
|
|
if (workerAdapter?.Trigger != null)
|
|
|
|
|
{
|
|
|
|
|
await DefaultScheduleJobAsync(workerAdapter);
|
|
|
|
|
await DefaultScheduleJobAsync(workerAdapter, cancellationToken);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual async Task DefaultScheduleJobAsync(IQuartzBackgroundWorker quartzWork)
|
|
|
|
|
protected virtual async Task DefaultScheduleJobAsync(IQuartzBackgroundWorker quartzWork, CancellationToken cancellationToken = default)
|
|
|
|
|
{
|
|
|
|
|
if (await _scheduler.CheckExists(quartzWork.JobDetail.Key))
|
|
|
|
|
if (await _scheduler.CheckExists(quartzWork.JobDetail.Key, cancellationToken))
|
|
|
|
|
{
|
|
|
|
|
await _scheduler.AddJob(quartzWork.JobDetail, true, true);
|
|
|
|
|
await _scheduler.ResumeJob(quartzWork.JobDetail.Key);
|
|
|
|
|
await _scheduler.RescheduleJob(quartzWork.Trigger.Key, quartzWork.Trigger);
|
|
|
|
|
await _scheduler.AddJob(quartzWork.JobDetail, true, true, cancellationToken);
|
|
|
|
|
await _scheduler.ResumeJob(quartzWork.JobDetail.Key, cancellationToken);
|
|
|
|
|
await _scheduler.RescheduleJob(quartzWork.Trigger.Key, quartzWork.Trigger, cancellationToken);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
await _scheduler.ScheduleJob(quartzWork.JobDetail, quartzWork.Trigger);
|
|
|
|
|
await _scheduler.ScheduleJob(quartzWork.JobDetail, quartzWork.Trigger, cancellationToken);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|