public void InsertDelayedTask ()
		{
			ScheduledThreadPoolExecutor e = new ScheduledThreadPoolExecutor (5, Executors.DefaultThreadFactory ());
			double t1 = 0;
			double t2 = 0;
			
			DateTime tim1 = DateTime.Now;
			e.Schedule (new RunnableAction (delegate {
				t1 = (DateTime.Now - tim1).TotalMilliseconds;
			}),100, TimeUnit.MILLISECONDS);
			
			Thread.Sleep (20);
			
			DateTime tim2 = DateTime.Now;
			e.Schedule (new RunnableAction (delegate {
				t2 = (DateTime.Now - tim2).TotalMilliseconds;
			}),50, TimeUnit.MILLISECONDS);
			
			Thread.Sleep (150);
			
			Assert.IsTrue (t2 >= 50, "Elapsed: " + t2);
			Assert.IsTrue (t2 < 50 + delayDif, "Elapsed: " + t2);
			Assert.IsTrue (t1 >= 100, "Elapsed: " + t1);
			Assert.IsTrue (t1 < 100 + delayDif, "Elapsed: " + t1);
			e.ShutdownNow ();
		}
        public void InsertDelayedTask()
        {
            ScheduledThreadPoolExecutor e = new ScheduledThreadPoolExecutor(5, Executors.DefaultThreadFactory());
            double t1 = 0;
            double t2 = 0;

            DateTime tim1 = DateTime.Now;

            e.Schedule(new RunnableAction(delegate {
                t1 = (DateTime.Now - tim1).TotalMilliseconds;
            }), 100, TimeUnit.MILLISECONDS);

            Thread.Sleep(20);

            DateTime tim2 = DateTime.Now;

            e.Schedule(new RunnableAction(delegate {
                t2 = (DateTime.Now - tim2).TotalMilliseconds;
            }), 50, TimeUnit.MILLISECONDS);

            Thread.Sleep(150);

            Assert.IsTrue(t2 >= 50, "Elapsed: " + t2);
            Assert.IsTrue(t2 < 50 + delayDif, "Elapsed: " + t2);
            Assert.IsTrue(t1 >= 100, "Elapsed: " + t1);
            Assert.IsTrue(t1 < 100 + delayDif, "Elapsed: " + t1);
            e.ShutdownNow();
        }
        public void ShutdownNow()
        {
            ScheduledThreadPoolExecutor e = new ScheduledThreadPoolExecutor(5, Executors.DefaultThreadFactory());
            bool run = false;

            e.Schedule(new RunnableAction(delegate
            {
                run = true;
            }), 100, TimeUnit.MILLISECONDS);

            Thread.Sleep(50);

            var pending = e.ShutdownNow();

            Assert.AreEqual(0, pending.Count);
            Assert.IsTrue(e.IsShutdown());
            Assert.IsTrue(e.IsTerminated(), "Terminated");
            Assert.IsFalse(e.IsTerminating(), "Terminating");

            Thread.Sleep(100);

            Assert.IsFalse(run);
            Assert.IsTrue(e.IsTerminated(), "Terminated");
            Assert.IsFalse(e.IsTerminating(), "Terminating");
        }
		public void DelayedTask ()
		{
			ScheduledThreadPoolExecutor e = new ScheduledThreadPoolExecutor (5, Executors.DefaultThreadFactory ());
			DateTime tim = DateTime.Now;
			var future = e.Schedule (new RunnableAction (delegate {
				Console.WriteLine ("t1");
			}),50, TimeUnit.MILLISECONDS);
			future.Get ();
			double elapsed = (DateTime.Now - tim).TotalMilliseconds;
			Assert.IsTrue (elapsed >= 50, "Elapsed: " + elapsed);
			Assert.IsTrue (elapsed < 60 + delayDif, "Elapsed: " + elapsed);
			e.ShutdownNow ();
		}
        public void DelayedTask()
        {
            ScheduledThreadPoolExecutor e = new ScheduledThreadPoolExecutor(5, Executors.DefaultThreadFactory());
            DateTime tim    = DateTime.Now;
            var      future = e.Schedule(new RunnableAction(delegate {
                Console.WriteLine("t1");
            }), 50, TimeUnit.MILLISECONDS);

            future.Get();
            double elapsed = (DateTime.Now - tim).TotalMilliseconds;

            Assert.IsTrue(elapsed >= 50, "Elapsed: " + elapsed);
            Assert.IsTrue(elapsed < 60 + delayDif, "Elapsed: " + elapsed);
            e.ShutdownNow();
        }
		public void ShutdownNow ()
		{
			ScheduledThreadPoolExecutor e = new ScheduledThreadPoolExecutor (5, Executors.DefaultThreadFactory ());
			bool run = false;
			e.Schedule (new RunnableAction (delegate {
				run = true;
			}),100, TimeUnit.MILLISECONDS);
			
			Thread.Sleep (50);
			
			var pending = e.ShutdownNow ();
			Assert.AreEqual (0, pending.Count);
			Assert.IsTrue (e.IsShutdown ());
			Assert.IsTrue (e.IsTerminated (), "Terminated");
			Assert.IsFalse (e.IsTerminating (), "Terminating");
			
			Thread.Sleep (100);
			
			Assert.IsFalse (run);
			Assert.IsTrue (e.IsTerminated (), "Terminated");
			Assert.IsFalse (e.IsTerminating (), "Terminating");
		}
Exemplo n.º 7
0
 /// <exception cref="System.Exception"/>
 protected override void ServiceStop()
 {
     Log.Info("Stopping JobHistory");
     if (scheduledExecutor != null)
     {
         Log.Info("Stopping History Cleaner/Move To Done");
         scheduledExecutor.Shutdown();
         bool interrupted = false;
         long currentTime = Runtime.CurrentTimeMillis();
         while (!scheduledExecutor.IsShutdown() && Runtime.CurrentTimeMillis() > currentTime
                + 1000l && !interrupted)
         {
             try
             {
                 Sharpen.Thread.Sleep(20);
             }
             catch (Exception)
             {
                 interrupted = true;
             }
         }
         if (!scheduledExecutor.IsShutdown())
         {
             Log.Warn("HistoryCleanerService/move to done shutdown may not have " + "succeeded, Forcing a shutdown"
                      );
             scheduledExecutor.ShutdownNow();
         }
     }
     if (storage != null && storage is Org.Apache.Hadoop.Service.Service)
     {
         ((Org.Apache.Hadoop.Service.Service)storage).Stop();
     }
     if (hsManager != null)
     {
         hsManager.Stop();
     }
     base.ServiceStop();
 }