コード例 #1
0
ファイル: JobEndNotifier.cs プロジェクト: orf53975/hadoop.net
        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);
        }