/// <summary> /// DoSetup(); /// </summary> internal void DoSetup() { _jobInProgress.SetupIsOngoing = true; var setupDuration = _capabilityProviderManager.GetSetupDurationBy(_jobInProgress.ResourceCapabilityId); var duration = Agent.Name.Contains("Operator") ? setupDuration : setupDuration + _jobInProgress.JobMaxDuration; //Start setup Agent.DebugMessage(msg: $"Call start Setup for Job {_jobInProgress.JobName} Key: {_jobInProgress.JobKey} " + $"Duration is {setupDuration} and start with Job at {Agent.CurrentTime + setupDuration}", CustomLogger.JOB, LogLevel.Warn); _capabilityProviderManager.Mount(_jobInProgress.CapabilityProviderId); _jobInProgress.StartSetup(Agent.CurrentTime, duration); if (_scopeQueue.FirstOrNull() != null && _jobInProgress.ResourceIsBusyUntil > _scopeQueue.FirstOrNull().ScopeConfirmation.GetScopeStart()) { RequeueAllRemainingJobs(); Agent.DebugMessage(msg: $"Queue seems unhealthy, try to requeue!", CustomLogger.JOB, LogLevel.Warn); } CreateSetupTask(setupDuration, JobType.SETUP); Agent.Send(Resource.Instruction.Default.FinishTask.Create("SETUP", Agent.Context.Self), waitFor: setupDuration); }