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");
        }
Example #2
0
        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);
        }