protected async Task DispatchRoutine(string queueName)
        {
            var message = _queueProvider.AskMessage(queueName);

            if (message != null)
            {
                var entity = _messageProvider.ExtractObject(message.Body);

                await OnSubscribe(entity);

                _queueProvider.DeleteMessage(message);
            }
            else
            {
                _logger.Info("No messages");
                await Task.Delay(_threadSleep);
            }
        }