public ContainerService(IActivity activity, ICrateManager crateManager, IUtilizationMonitoringService utilizationMonitoringService, IActivityExecutionRateLimitingService activityRateLimiter, IPusherNotifier pusher, IUnitOfWorkFactory uowFactory) { _utilizationMonitoringService = utilizationMonitoringService; _activityRateLimiter = activityRateLimiter; _pusherNotifier = pusher; _uowFactory = uowFactory; _activity = activity; _crate = crateManager; }
public ActivityExecutionRateLimitingService(IUtilizationMonitoringService utilizationMonitoringService, IUtilizationDataProvider utilizationDataProvider, IPusherNotifier pusherNotifier, ITimer timer) { var renewInterval = Math.Max(GetSetting("UtilizationSateRenewInterval", utilizationMonitoringService.AggregationUnitDuration / 2), MinimalRenewInterval); _overheatingThreshold = GetSetting("ActivityExecutionOverheatingThreshold", DefaultOverheatingThreshold); _userBanTime = TimeSpan.FromSeconds(GetSetting("OverheatedUserBanTime", DefaultUserBanTime)); _reportValidInterval = TimeSpan.FromSeconds(Math.Ceiling(utilizationMonitoringService.AggregationUnitDuration * 1.5f)); _utilizationDataProvider = utilizationDataProvider; _pusherNotifier = pusherNotifier; _utilizationRenewTimer = timer; timer.Configure(OnUtilizationStateRenewTick, this, renewInterval * 1000, renewInterval * 1000); }
/**********************************************************************************/ // Functions /**********************************************************************************/ public ExecutionSession(IUnitOfWork uow, OperationalStateCM.ActivityCallStack callStack, ContainerDO container, IActivity activity, ICrateManager crateManager, IUtilizationMonitoringService utilizationMonitoringService, IActivityExecutionRateLimitingService activityRateLimiter) { _uow = uow; _callStack = callStack; _container = container; _activity = activity; _crate = crateManager; _utilizationMonitoringService = utilizationMonitoringService; _activityRateLimiter = activityRateLimiter; }