protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            var queues = await _eventQueue.GetQueuesAsync();

            if (queues.Count > 0)
            {
                await queues.Select(async q =>
                {
                    var @event = await _eventQueue.DequeueAsync(q);
                    if (null != @event)
                    {
                        var handlers = _eventHandlerFactory.GetHandlers(@event.GetType());
                        if (handlers.Count > 0)
                        {
                            await handlers
                            .Select(h => h.Handle(@event))
                            .WhenAll()
                            ;
                        }
                    }
                })
                .WhenAll()
                ;
            }

            await Task.Delay(1000, stoppingToken);
        }
    }