public Task <HttpResponseMessage> Get() { HttpStatusCode httpStatusCode; IMonitoringApi monitoring = JobStorage.Current.GetMonitoringApi(); long backgroundJobCount = monitoring.EnqueuedCount("recycler"); var status = backgroundJobCount == 0 ? "not running" : "running"; httpStatusCode = HttpStatusCode.OK; HttpResponseMessage httpResponseMessage = Request.CreateResponse(httpStatusCode, new { status = status }); TaskCompletionSource <HttpResponseMessage> tsc = new TaskCompletionSource <HttpResponseMessage>(); tsc.SetResult(httpResponseMessage); return(tsc.Task); }
/// <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); }