public static void UnscheduleJobWhenAlreadyExists(this IBackgroundJobClient backgroundJobClient, RunHangfireWorkflowJobModel data)
        {
            var identity        = data.GetIdentity();
            var monitor         = JobStorage.Current.GetMonitoringApi();
            var workflowJobType = typeof(RunHangfireWorkflowJob);

            var jobs = monitor.ScheduledJobs(0, int.MaxValue)
                       .Where(x => x.Value.Job.Type == workflowJobType && ((RunHangfireWorkflowJobModel)x.Value.Job.Args[0]).GetIdentity() == identity);

            foreach (var job in jobs)
            {
                BackgroundJob.Delete(job.Key);
            }
        }
Пример #2
0
        public void UnscheduleJob(RunHangfireWorkflowJobModel data)
        {
            var identity = data.GetIdentity();

            UnscheduleJob(identity);
        }
Пример #3
0
        public void ScheduleJob(RunHangfireWorkflowJobModel data, string cronExpression)
        {
            var identity = data.GetIdentity();

            _recurringJobManager.AddOrUpdate <RunHangfireWorkflowJob>(identity, job => job.ExecuteAsync(data), cronExpression);
        }