private static JobEndNotifier.JobEndStatusInfo CreateNotification(JobConf conf, JobStatus status) { JobEndNotifier.JobEndStatusInfo notification = null; string uri = conf.GetJobEndNotificationURI(); if (uri != null) { int retryAttempts = conf.GetInt(JobContext.MrJobEndRetryAttempts, 0); long retryInterval = conf.GetInt(JobContext.MrJobEndRetryInterval, 30000); int timeout = conf.GetInt(JobContext.MrJobEndNotificationTimeout, JobContext.DefaultMrJobEndNotificationTimeout ); if (uri.Contains("$jobId")) { uri = uri.Replace("$jobId", ((JobID)status.GetJobID()).ToString()); } if (uri.Contains("$jobStatus")) { string statusStr = (status.GetRunState() == JobStatus.Succeeded) ? "SUCCEEDED" : (status.GetRunState() == JobStatus.Failed) ? "FAILED" : "KILLED"; uri = uri.Replace("$jobStatus", statusStr); } notification = new JobEndNotifier.JobEndStatusInfo(uri, retryAttempts, retryInterval , timeout); } return(notification); }