public void TestSweep() { int count = JobSweeper.SweepSubmitQueue(5000, 5); Assert.AreEqual(count, 5); using (TurbineModelContainer container = new TurbineModelContainer()) { count = container.Jobs.Count(s => s.State == "expired"); } Assert.AreEqual(count, 5); using (TurbineModelContainer container = new TurbineModelContainer()) { jobCount = container.Jobs.Count(); foreach (Job obj in container.Jobs.OrderBy(s => s.Submit)) { Console.WriteLine(String.Format("job({0}) submit {1} state {2}", obj.Id, obj.Submit, obj.State)); } container.SaveChanges(); } count = JobSweeper.SweepSubmitQueue(5000, 5); Assert.AreEqual(count, 5); using (TurbineModelContainer container = new TurbineModelContainer()) { count = container.Jobs.Count(s => s.State == "expired"); } Assert.AreEqual(count, 10); }
void ScheduledSweep() { int count; while (true) { count = JobSweeper.SweepSubmitQueue(expiredMS, maxMoveExpired); Debug.WriteLine("Submit Jobs moved to expired: " + count, this.GetType()); count = JobSweeper.SweepCreate(expiredMS, maxMoveExpired); Debug.WriteLine("Create Jobs moved to expired: " + count, this.GetType()); // // NOTE: Dangerous possibilities need to // verify consumer has failed and possibly // kill hanging process. JobSweeper.SweepSetup(expiredMS); //JobSweeper.SweepRunning(expiredMS); Thread.Sleep(timeOut); } }