/// <inheritdoc/>
 public virtual QueueProcessor Create(QueueProcessorOptions context)
 {
     if (context == null)
     {
         throw new ArgumentNullException(nameof(context));
     }
     return(new QueueProcessor(context));
 }
        /// <summary>
        /// Constructs a new instance.
        /// </summary>
        /// <param name="queueProcessorOptions">The options.</param>
        internal protected QueueProcessor(QueueProcessorOptions queueProcessorOptions)
        {
            if (queueProcessorOptions == null)
            {
                throw new ArgumentNullException(nameof(queueProcessorOptions));
            }

            _queue       = queueProcessorOptions.Queue;
            _poisonQueue = queueProcessorOptions.PoisonQueue;
            _logger      = queueProcessorOptions.Logger;

            QueuesOptions = queueProcessorOptions.Options;
        }