Example #1
0
 internal RequestCollapser(HystrixCollapser <BatchReturnType, RequestResponseType, RequestArgumentType> commandCollapser, IHystrixCollapserOptions properties, ICollapserTimer timer, HystrixConcurrencyStrategy concurrencyStrategy)
 {
     this.commandCollapser    = commandCollapser; // the command with implementation of abstract methods we need
     this.concurrencyStrategy = concurrencyStrategy;
     this.properties          = properties;
     this.timer  = timer;
     batch.Value = new RequestBatch <BatchReturnType, RequestResponseType, RequestArgumentType>(properties, commandCollapser, properties.MaxRequestsInBatch);
 }
Example #2
0
 public RequestCollapserFactory(IHystrixCollapserKey collapserKey, RequestCollapserScope scope, ICollapserTimer timer, IHystrixCollapserOptions properties)
 {
     /* strategy: ConcurrencyStrategy */
     concurrencyStrategy = HystrixPlugins.ConcurrencyStrategy;
     this.timer          = timer;
     Scope        = scope;
     CollapserKey = collapserKey;
     Properties   = properties;
 }
Example #3
0
        protected HystrixCollapser(IHystrixCollapserKey collapserKey, RequestCollapserScope scope, ICollapserTimer timer, IHystrixCollapserOptions optionsDefault, HystrixCollapserMetrics metrics)
        {
            if (collapserKey == null || string.IsNullOrWhiteSpace(collapserKey.Name))
            {
                var defaultKeyName = GetDefaultNameFromClass(GetType());
                collapserKey = HystrixCollapserKeyDefault.AsKey(defaultKeyName);
            }

            var options = HystrixOptionsFactory.GetCollapserOptions(collapserKey, optionsDefault);

            _collapserFactory = new RequestCollapserFactory(collapserKey, scope, timer, options);
            _requestCache     = HystrixRequestCache.GetInstance(collapserKey);

            if (metrics == null)
            {
                _metrics = HystrixCollapserMetrics.GetInstance(collapserKey, options);
            }
            else
            {
                _metrics = metrics;
            }

            HystrixMetricsPublisherFactory.CreateOrRetrievePublisherForCollapser(collapserKey, _metrics, options);
        }
Example #4
0
 protected HystrixCollapser(IHystrixCollapserKey collapserKey, RequestCollapserScope scope, ICollapserTimer timer, IHystrixCollapserOptions options)
     : this(collapserKey, scope, timer, options, null)
 {
 }
Example #5
0
        protected HystrixCollapser(IHystrixCollapserKey collapserKey, RequestCollapserScope scope, ICollapserTimer timer, IHystrixCollapserOptions optionsDefault, HystrixCollapserMetrics metrics)
        {
            if (collapserKey == null || collapserKey.Name.Trim().Equals(string.Empty))
            {
                string defaultKeyName = GetDefaultNameFromClass(GetType());
                collapserKey = HystrixCollapserKeyDefault.AsKey(defaultKeyName);
            }

            IHystrixCollapserOptions options = HystrixOptionsFactory.GetCollapserOptions(collapserKey, optionsDefault);

            collapserFactory = new RequestCollapserFactory(collapserKey, scope, timer, options);
            requestCache     = HystrixRequestCache.GetInstance(collapserKey);

            if (metrics == null)
            {
                this.metrics = HystrixCollapserMetrics.GetInstance(collapserKey, options);
            }
            else
            {
                this.metrics = metrics;
            }

            HystrixMetricsPublisherFactory.CreateOrRetrievePublisherForCollapser(collapserKey, this.metrics, options);
        }
Example #6
0
 public RequestCollapserRequestVariable(HystrixCollapser <BatchReturnType, ResponseType, RequestArgumentType> commandCollapser, IHystrixCollapserOptions properties, ICollapserTimer timer, HystrixConcurrencyStrategy concurrencyStrategy)
     : base(() => new RequestCollapser <BatchReturnType, ResponseType, RequestArgumentType>(commandCollapser, properties, timer, concurrencyStrategy), (collapser) => collapser.Shutdown())
 {
 }