コード例 #1
0
        private void CreateRunningJob(JobInfo jobInfo)
        {
            if (jobInfo == null)
            {
                return;
            }

            Tracer.Info("Starting workers for a new job. PipelineId = {0}, JobId = {1}, JobTypeId = {2}", 
                jobInfo.PipelineId, jobInfo.JobId, jobInfo.JobTypeId);

            RunningJob runningJob = new RunningJob(jobInfo);

            foreach (WorkRequest workRequest in jobInfo.WorkRequests)
            {
                workRequest.BootParameters = jobInfo.BootParameters;
                workRequest.JobParameters = jobInfo.JobParameters;
                WorkerCard workerCard = WorkersInventory.Instance.FindWorkerForRole(workRequest.RoleType);
                if (null == workerCard)
                {
                    Tracer.Info("This worker manager does not have workers suitable for the role {0}", workRequest.RoleType);
                    continue;
                }
                JobSection jobSection = new JobSection(workRequest, workerCard);
                runningJob.Sections.Add(jobSection);
            }
            RunningJobs.Add(runningJob);

            if (jobInfo.Command == Command.Run)
            {
                EmployWorkersForJob(runningJob);
            }
        }
コード例 #2
0
        public RunningJob(JobInfo jobInfo)
        {
            PipelineId = jobInfo.PipelineId;
            BootParameters = jobInfo.BootParameters;
            JobParameters = jobInfo.JobParameters;
            Sections = new List<JobSection>();
            State = States.Running;

            // Information required to start classic jobs
            JobId = jobInfo.JobId;
            ScheduleRunDuration = jobInfo.ScheduleRunDuration;
            ScheduleCreatedBy = jobInfo.ScheduleCreatedBy;
            NotificationId = jobInfo.NotificationId;
            Frequency = jobInfo.Frequency;
        }
コード例 #3
0
 public JobsInfo(JobInfo[] jobsInfo)
 {
     _jobsInfo = jobsInfo.ToList();
 }