コード例 #1
0
        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;
        }
コード例 #2
0
        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;
        }