Example #1
0
 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;
 }
Example #2
0
        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;
            }