private void VirtualResourceEventBus_OnShutdownResource(object sender, VirtualResourceEventBusShutdownArgs e) { ChangeState(RuntimeState.ShuttingDown, e.CopyLogs); //VirtualResourceInstanceStatusLogger statusChange = new VirtualResourceInstanceStatusLogger(_sessionId, Environment.UserName, _workerStatusIndex++, Enum.GetName(typeof(RuntimeState), 12), false, GlobalDataStore.ResourceInstanceId); _statusLogger.Update(_statusLogger.Index + 1, Enum.GetName(typeof(RuntimeState), 12), false, "Shutdown"); ExecutionServices.DataLogger.AsInternal().Submit(_statusLogger); }
private void RunSchedule(WorkerExecutionState state, DateTime endTime) { TimeSpan duration = endTime - DateTime.Now; if (state == WorkerExecutionState.Idle) { TraceFactory.Logger.Debug("Idle wait for {0} mins".FormatWith(duration.TotalMinutes)); TraceFactory.Logger.Debug("Paused for {0} mins".FormatWith(_flowControlMonitor.PauseTime.TotalMinutes)); _virtualResourceStatusLogger.Update(_virtualResourceStatusLogger.Index + 1, Enum.GetName(typeof(Runtime.RuntimeState), 6), false, "EngineIdle"); ExecutionServices.DataLogger.AsInternal().Submit(_virtualResourceStatusLogger); _flowControlMonitor.Pause(() => !ExecutionHalted, duration, TimeSpan.FromSeconds(1)); } else { _virtualResourceStatusLogger.Update(_virtualResourceStatusLogger.Index + 1, Enum.GetName(typeof(Runtime.RuntimeState), 6), true, "EngineActive"); ExecutionServices.DataLogger.AsInternal().Submit(_virtualResourceStatusLogger); new DurationBasedEngine(_workerDetail, ActivityQueue, PacingInfo, (int)duration.TotalMinutes).Run(); } }