public virtual void TestTimeout() { EventHandler mockHandler = Org.Mockito.Mockito.Mock <EventHandler>(); Clock clock = new SystemClock(); TaskHeartbeatHandler hb = new TaskHeartbeatHandler(mockHandler, clock, 1); Configuration conf = new Configuration(); conf.SetInt(MRJobConfig.TaskTimeout, 10); //10 ms conf.SetInt(MRJobConfig.TaskTimeoutCheckIntervalMs, 10); //10 ms hb.Init(conf); hb.Start(); try { ApplicationId appId = ApplicationId.NewInstance(0l, 5); JobId jobId = MRBuilderUtils.NewJobId(appId, 4); TaskId tid = MRBuilderUtils.NewTaskId(jobId, 3, TaskType.Map); TaskAttemptId taid = MRBuilderUtils.NewTaskAttemptId(tid, 2); hb.Register(taid); Sharpen.Thread.Sleep(100); //Events only happen when the task is canceled Org.Mockito.Mockito.Verify(mockHandler, Org.Mockito.Mockito.Times(2)).Handle(Matchers.Any <Org.Apache.Hadoop.Yarn.Event.Event>()); } finally { hb.Stop(); } }
internal PingChecker(TaskHeartbeatHandler _enclosing) { this._enclosing = _enclosing; }