public void Refresh() { _scheduled = _hangfire.ScheduledJobs(0, (int)_hangfire.ScheduledCount()); _processing = _hangfire.ProcessingJobs(0, (int)_hangfire.ProcessingCount()); _failed = _hangfire.FailedJobs(0, (int)_hangfire.FailedCount()); _succeded = _hangfire.SucceededJobs(0, (int)_hangfire.SucceededListCount()); _recurring = JobStorage.Current.GetConnection().GetRecurringJobs(); }
public static void PurgeJobs(IMonitoringApi monitor) { var toDelete = new List <string>(); foreach (var queue in monitor.ProcessingJobs(0, (int)monitor.ProcessingCount())) { toDelete.Add(queue.Key); } foreach (var jobId in toDelete) { BackgroundJob.Delete(jobId); } }
/// <summary> /// check Job is enqueued or processing /// </summary> /// <param name="actionName">full action name</param> /// <returns></returns> public static bool IsRunning(IMonitoringApi api, string actionName) { var queues = api.Queues(); foreach (var queue in queues) { var queueName = queue.Name; var enqueuedCount = Convert.ToInt32(api.EnqueuedCount(queueName)); var enqueuedJobs = api.EnqueuedJobs(queueName, 0, enqueuedCount); if (enqueuedJobs.Any(job => job.Value.Job.Method.GetFullActionName() == actionName)) { return(true); } } var processingCount = Convert.ToInt32(api.ProcessingCount()); var processingJobs = api.ProcessingJobs(0, processingCount); return(processingJobs.Any(job => job.Value.Job.Method.GetFullActionName() == actionName)); }
public static bool JobInEsecuzione(this IMonitoringApi api) { return(api.ProcessingCount() + api.EnqueuedCount("default") > 0); }