QualityBotDaemon.Worker.Poll C# (CSharp) Method

Poll() public method

Does work until no work is found, and then it polls for more work every 10 seconds. Could multi-thread this, but it's just as trivial to load multiple instances.
public Poll ( ) : void
return void
        public void Poll()
        {
            var job = _db.GetNextJob();
            if (job == null)
            {
                Console.WriteLine("No jobs.");
                Thread.Sleep(PollRate);
            }

            while (DoWork)
            {
                if (job != null)
                {
                    DoJob(job);
                }

                job = _db.GetNextJob();

                if (job != null)
                {
                    continue;
                }

                Console.WriteLine("No jobs.");
                Thread.Sleep(PollRate);
            }
        }

Usage Example

示例#1
0
        public void WorkerSleepsIfNoJobsFound()
        {
            // Arrange
            var service   = Substitute.For<IService>();
            var db        = Substitute.For<IJobsDb>();
            db.GetNextJob().ReturnsForAnyArgs((Job)null);
            var worker    = new Worker(service, db) { PollRate = 1000 };
            worker.DoWork = false;

            // Act
            var sw = Stopwatch.StartNew();
            worker.Poll();
            sw.Stop();

            // Assert
            Assert.That(sw.ElapsedMilliseconds, Is.AtLeast(950));
        }
All Usage Examples Of QualityBotDaemon.Worker::Poll