private static JobDescriptor GetNextMessage(DateTime stop, ITimeBasedQueue queue, out DateTime actualStop)
        {
            JobDescriptor result = null;

            actualStop = DateTime.MaxValue;
            int count = 0;

            while (DateTime.Now < stop && result == null)
            {
                result     = queue.Next();
                actualStop = DateTime.Now;
                count++;
                Thread.Yield();
            }

            return(result);
        }
 public SimpleController(ITimeBasedQueue timeBasedQueue, IJobTriggeringQueue jobTriggeringQueue)
 {
     this.timeBasedQueue     = timeBasedQueue ?? throw new ArgumentNullException(nameof(timeBasedQueue));
     this.jobTriggeringQueue = jobTriggeringQueue ?? throw new ArgumentNullException(nameof(jobTriggeringQueue));
 }