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); } }
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; }
public JobsInfo(JobInfo[] jobsInfo) { _jobsInfo = jobsInfo.ToList(); }