public HealthCheckResult CheckQueue() { var message = new StatusMessage { Id = Guid.NewGuid().ToString() }; try { _queue.Enqueue(message); if (_queue.GetQueueCount() == 0) return HealthCheckResult.NotHealthy("Queue Not Working: No items were enqueued."); var workItem = _queue.Dequeue(TimeSpan.Zero); if (workItem == null) return HealthCheckResult.NotHealthy("Queue Not Working: No items could be dequeued."); workItem.Complete(); } catch (Exception ex) { return HealthCheckResult.NotHealthy("Queues Not Working: " + ex.Message); } return HealthCheckResult.Healthy; }
public async Task<HealthCheckResult> CheckQueueAsync() { var message = new StatusMessage { Id = Guid.NewGuid().ToString() }; try { await _queue.EnqueueAsync(message).AnyContext(); var queueStats = await _queue.GetQueueStatsAsync().AnyContext(); if (queueStats.Enqueued == 0) return HealthCheckResult.NotHealthy("Queue Not Working: No items were enqueued."); var workItem = await _queue.DequeueAsync().AnyContext(); if (workItem == null) return HealthCheckResult.NotHealthy("Queue Not Working: No items could be dequeued."); await workItem.CompleteAsync().AnyContext(); } catch (Exception ex) { return HealthCheckResult.NotHealthy("Queues Not Working: " + ex.Message); } return HealthCheckResult.Healthy; }