public CriticalSectionContext(ICriticalSectionRepository criticalSectionRepository, TaskExecutionInstance taskExecutionInstance, TaskExecutionOptions taskExecutionOptions, CriticalSectionType criticalSectionType) { _criticalSectionRepository = criticalSectionRepository; _taskExecutionInstance = taskExecutionInstance; _taskExecutionOptions = taskExecutionOptions; _criticalSectionType = criticalSectionType; ValidateOptions(); }
private TaskExecutionOptions LoadTaskExecutionOptions(string applicationName, string taskName) { var taskConfiguration = _configuration.GetTaskConfiguration(applicationName, taskName); var executionOptions = new TaskExecutionOptions(); executionOptions.TaskDeathMode = taskConfiguration.UsesKeepAliveMode ? TaskDeathMode.KeepAlive : TaskDeathMode.Override; executionOptions.KeepAliveDeathThreshold = new TimeSpan((long)(taskConfiguration.KeepAliveDeathThresholdMinutes * TimeSpan.TicksPerMinute)); executionOptions.KeepAliveInterval = new TimeSpan((long)(taskConfiguration.KeepAliveIntervalMinutes * TimeSpan.TicksPerMinute)); executionOptions.OverrideThreshold = new TimeSpan((long)(taskConfiguration.TimePeriodDeathThresholdMinutes * TimeSpan.TicksPerMinute)); executionOptions.ConcurrencyLimit = taskConfiguration.ConcurrencyLimit; executionOptions.Enabled = taskConfiguration.Enabled; return executionOptions; }