コード例 #1
0
ファイル: RequestCacheKey.cs プロジェクト: Elders/Hystrix.NET
 public RequestCacheKey(IHystrixCollapserKey collapserKey, IHystrixConcurrencyStrategy concurrencyStrategy)
 {
     type = 2;
     if (collapserKey == null)
     {
         this.key = null;
     }
     else
     {
         this.key = collapserKey.Name;
     }
     this.concurrencyStrategy = concurrencyStrategy;
 }
コード例 #2
0
        public static IHystrixCollapserProperties GetCollapserProperties(IHystrixCollapserKey collapserKey, HystrixCollapserPropertiesSetter setter)
        {
            if (collapserKey == null)
                throw new ArgumentNullException("collapserKey");

            IHystrixPropertiesStrategy strategy = HystrixPlugins.Instance.PropertiesStrategy;
            string cacheKey = strategy.GetCollapserPropertiesCacheKey(collapserKey, setter);
            if (String.IsNullOrEmpty(cacheKey))
            {
                return strategy.GetCollapserProperties(collapserKey, setter);
            }
            else
            {
                return collapserProperties.GetOrAdd(cacheKey, w =>
                {
                    if (setter == null)
                    {
                        setter = new HystrixCollapserPropertiesSetter();
                    }

                    return strategy.GetCollapserProperties(collapserKey, setter);
                });
            }
        }
コード例 #3
0
 public IHystrixCollapserProperties GetCollapserProperties(IHystrixCollapserKey collapserKey, HystrixCollapserPropertiesSetter setter)
 {
     throw new InvalidOperationException();
 }
コード例 #4
0
 public static HystrixCollapserMetrics GetInstance(IHystrixCollapserKey key, IHystrixCollapserOptions properties)
 {
     return(metrics.GetOrAddEx(key.Name, (k) => new HystrixCollapserMetrics(key, properties)));
 }
コード例 #5
0
 public virtual IHystrixMetricsPublisherCollapser GetMetricsPublisherForCollapser(IHystrixCollapserKey collapserKey, HystrixCollapserMetrics metrics, IHystrixCollapserOptions properties)
 {
     return(new HystrixMetricsPublisherCollapserDefault(collapserKey, metrics, properties));
 }
コード例 #6
0
 private ExecutionSignature(IHystrixCommandKey commandKey, ExecutionResult.EventCounts eventCounts, string cacheKey, int cachedCount, IHystrixCollapserKey collapserKey, int collapserBatchSize)
 {
     this.commandName        = commandKey.Name;
     this.eventCounts        = eventCounts;
     this.cacheKey           = cacheKey;
     this.cachedCount        = cachedCount;
     this.collapserKey       = collapserKey;
     this.collapserBatchSize = collapserBatchSize;
 }
コード例 #7
0
 private CumulativeCollapserEventCounterStream(IHystrixCollapserKey collapserKey, int numCounterBuckets, int counterBucketSizeInMs, Func <long[], HystrixCollapserEvent, long[]> appendEventToBucket, Func <long[], long[], long[]> reduceBucket)
     : base(HystrixCollapserEventStream.GetInstance(collapserKey), numCounterBuckets, counterBucketSizeInMs, appendEventToBucket, reduceBucket)
 {
 }
コード例 #8
0
 public virtual IHystrixCollapserProperties GetCollapserProperties(IHystrixCollapserKey collapserKey, HystrixCollapserPropertiesSetter setter)
 {
     return new HystrixPropertiesCollapserDefault(setter);
 }
コード例 #9
0
 public static HystrixCollapserSetter WithCollapserKey(IHystrixCollapserKey collapserKey)
 {
     return new HystrixCollapserSetter(collapserKey);
 }
 private RollingCollapserBatchSizeDistributionStream(IHystrixCollapserKey collapserKey, int numPercentileBuckets, int percentileBucketSizeInMs) :
     base(HystrixCollapserEventStream.GetInstance(collapserKey), numPercentileBuckets, percentileBucketSizeInMs, AddValuesToBucket)
 {
 }
 public static RollingCollapserBatchSizeDistributionStream GetInstance(IHystrixCollapserKey collapserKey, int numBuckets, int bucketSizeInMs)
 {
     return(streams.GetOrAddEx(collapserKey.Name, (k) => new RollingCollapserBatchSizeDistributionStream(collapserKey, numBuckets, bucketSizeInMs)));
 }
コード例 #12
0
 public static HystrixCollapserEvent From(IHystrixCollapserKey collapserKey, CollapserEventType eventType, int count)
 {
     return(new HystrixCollapserEvent(collapserKey, eventType, count));
 }
コード例 #13
0
 protected HystrixCollapserEvent(IHystrixCollapserKey collapserKey, CollapserEventType eventType, int count)
 {
     this.collapserKey = collapserKey;
     this.eventType    = eventType;
     this.count        = count;
 }
コード例 #14
0
        public static RollingCollapserEventCounterStream GetInstance(IHystrixCollapserKey collapserKey, int numBuckets, int bucketSizeInMs)
        {
            var result = Streams.GetOrAddEx(collapserKey.Name, (k) => new RollingCollapserEventCounterStream(collapserKey, numBuckets, bucketSizeInMs, HystrixCollapserMetrics.AppendEventToBucket, HystrixCollapserMetrics.BucketAggregator));

            return(result);
        }
コード例 #15
0
 public string GetCollapserPropertiesCacheKey(IHystrixCollapserKey collapserKey, HystrixCollapserPropertiesSetter setter)
 {
     return null;
 }
コード例 #16
0
 private HystrixCollapserSetter(IHystrixCollapserKey collapserKey)
 {
     this.collapserKey = collapserKey;
 }
コード例 #17
0
 private static HystrixCollapserConfiguration SampleCollapserConfiguration(IHystrixCollapserKey collapserKey, IHystrixCollapserOptions collapserProperties)
 {
     return(HystrixCollapserConfiguration.Sample(collapserKey, collapserProperties));
 }
コード例 #18
0
 public static Collapser From(ITestOutputHelper output, IHystrixCollapserKey key, int arg)
 {
     return(new Collapser(output, key, arg));
 }
コード例 #19
0
 private Collapser(ITestOutputHelper output, IHystrixCollapserKey key, int arg)
     : base(Options(key, 100))
 {
     this.arg    = arg;
     this.output = output;
 }
コード例 #20
0
 public virtual string GetCollapserPropertiesCacheKey(IHystrixCollapserKey collapserKey, HystrixCollapserPropertiesSetter setter)
 {
     return collapserKey.Name;
 }
コード例 #21
0
 public static IHystrixMetricsPublisherCollapser CreateOrRetrievePublisherForCollapser(IHystrixCollapserKey collapserKey, HystrixCollapserMetrics metrics, IHystrixCollapserOptions properties)
 {
     return(singleton.GetPublisherForCollapser(collapserKey, metrics, properties));
 }