public CriticalSectionContext(ICriticalSectionRepository criticalSectionRepository,
            TaskExecutionInstance taskExecutionInstance,
            TaskExecutionOptions taskExecutionOptions,
            CriticalSectionType criticalSectionType)
        {
            _criticalSectionRepository = criticalSectionRepository;
            _taskExecutionInstance = taskExecutionInstance;
            _taskExecutionOptions = taskExecutionOptions;
            _criticalSectionType = criticalSectionType;

            ValidateOptions();
        }
Exemplo n.º 2
0
        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;
        }