private async Task InvalidateJobsAsync(CancellationToken cancellationToken) { Log.Debug("Jobs invalidation started"); foreach (var jobKey in await scheduler.GetJobKeysAsync()) { try { if (await CheckJobShouldBeInvalidatedAsync(jobKey)) { await scheduler.DeleteJobAsync(jobKey); Log.Information("{jobId} job was invalidted", jobKey.Name); } } catch (Exception e) { Log.Error(e, "Unable to invalidate {jobId} job", jobKey.Name); } cancellationToken.ThrowIfCancellationRequested(); } invalidatedEvent.Set(); Log.Information("Jobs invalidation completed"); }
public async Task InvalidateDeprecatedJobs(string groupName, string[] jobIds) { var existingJobKeys = await scheduler.GetJobKeysAsync(groupName); var outdatedJobKeys = existingJobKeys.Where(jobKey => !jobIds.Contains(jobKey.Name)); await InvalidateJobsAsync(outdatedJobKeys); }