Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="HystrixRollingNumber"/> class.
        /// </summary>
        /// <param name="time">The <see cref="ITime"/> instance to measure time.</param>
        /// <param name="timeInMilliseconds">The total time window to track.</param>
        /// <param name="numberOfBuckets">The number of parts to break the time window.</param>
        private HystrixRollingNumber(ITime time, IHystrixProperty <int> timeInMilliseconds, IHystrixProperty <int> numberOfBuckets)
        {
            this.time = time;
            this.timeInMilliseconds = timeInMilliseconds;
            this.numberOfBuckets    = numberOfBuckets;

            if (timeInMilliseconds.Get() % numberOfBuckets.Get() != 0)
            {
                throw new ArgumentException("The timeInMilliseconds must divide equally into numberOfBuckets. For example 1000/10 is ok, 1000/11 is not.");
            }

            this.buckets = new BucketCircularArray <Bucket>(numberOfBuckets.Get());
        }
Ejemplo n.º 2
0
        public void PropertyFactory_Nested2()
        {
            IHystrixProperty <string> nullValue = HystrixPropertyFactory.NullProperty <string>();

            IHystrixProperty <string> withDefault = HystrixPropertyFactory.AsProperty(nullValue, "b");

            Assert.AreEqual("b", withDefault.Get());
        }
Ejemplo n.º 3
0
        public void PropertyFactory_Series2()
        {
            IHystrixProperty <string> nullValue = HystrixPropertyFactory.NullProperty <string>();
            IHystrixProperty <string> a         = HystrixPropertyFactory.AsProperty(nullValue, (string)null);

            IHystrixProperty <string> withDefault = HystrixPropertyFactory.AsProperty(a, nullValue, HystrixPropertyFactory.AsProperty("b"), nullValue, HystrixPropertyFactory.AsProperty("c"));

            Assert.AreEqual("b", withDefault.Get());
        }
Ejemplo n.º 4
0
        public void PropertyFactory_Nested1()
        {
            IHystrixProperty <string> a = HystrixPropertyFactory.AsProperty("a");

            Assert.AreEqual("a", a.Get());

            IHystrixProperty <string> aWithDefault = HystrixPropertyFactory.AsProperty(a, "b");

            Assert.AreEqual("a", aWithDefault.Get());
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="HystrixRollingPercentile"/> class.
        /// </summary>
        /// <param name="time">The <see cref="ITime"/> instance to measure time.</param>
        /// <param name="timeInMilliseconds">Number of milliseconds of data that should be tracked.</param>
        /// <param name="numberOfBuckets">Number of buckets that the time window should be divided into.</param>
        /// <param name="bucketDataLength">Number of values stored in each bucket.</param>
        /// <param name="enabled">Sets whether data should be tracked and percentiles be calculated.</param>
        internal HystrixRollingPercentile(ITime time, IHystrixProperty <int> timeInMilliseconds, IHystrixProperty <int> numberOfBuckets, IHystrixProperty <int> bucketDataLength, IHystrixProperty <bool> enabled)
        {
            if (timeInMilliseconds.Get() % numberOfBuckets.Get() != 0)
            {
                throw new ArgumentException("The timeInMilliseconds must divide equally into numberOfBuckets. For example 1000/10 is ok, 1000/11 is not.");
            }

            this.time = time;
            this.timeInMilliseconds = timeInMilliseconds;
            this.numberOfBuckets    = numberOfBuckets;
            this.bucketDataLength   = bucketDataLength;
            this.enabled            = enabled;
            this.buckets            = new BucketCircularArray <Bucket>(this.numberOfBuckets.Get());
        }
 public virtual ThreadPoolExecutor GetThreadPool(HystrixThreadPoolKey threadPoolKey, IHystrixProperty <int> corePoolSize, IHystrixProperty <int> maximumPoolSize, IHystrixProperty <TimeSpan> keepAliveTime, IBlockingQueue <IRunnable> workQueue)
 {
     return(new ThreadPoolExecutor(corePoolSize.Get(), maximumPoolSize.Get(), keepAliveTime.Get(), workQueue, new DefaultThreadFactory(threadPoolKey)));
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="HystrixRollingPercentile"/> class.
        /// </summary>
        /// <param name="time">The <see cref="ITime"/> instance to measure time.</param>
        /// <param name="timeInMilliseconds">Number of milliseconds of data that should be tracked.</param>
        /// <param name="numberOfBuckets">Number of buckets that the time window should be divided into.</param>
        /// <param name="bucketDataLength">Number of values stored in each bucket.</param>
        /// <param name="enabled">Sets whether data should be tracked and percentiles be calculated.</param>
        internal HystrixRollingPercentile(ITime time, IHystrixProperty<int> timeInMilliseconds, IHystrixProperty<int> numberOfBuckets, IHystrixProperty<int> bucketDataLength, IHystrixProperty<bool> enabled)
        {
            if (timeInMilliseconds.Get() % numberOfBuckets.Get() != 0)
            {
                throw new ArgumentException("The timeInMilliseconds must divide equally into numberOfBuckets. For example 1000/10 is ok, 1000/11 is not.");
            }

            this.time = time;
            this.timeInMilliseconds = timeInMilliseconds;
            this.numberOfBuckets = numberOfBuckets;
            this.bucketDataLength = bucketDataLength;
            this.enabled = enabled;
            this.buckets = new BucketCircularArray<Bucket>(this.numberOfBuckets.Get());
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="HystrixRollingNumber"/> class.
        /// </summary>
        /// <param name="time">The <see cref="ITime"/> instance to measure time.</param>
        /// <param name="timeInMilliseconds">The total time window to track.</param>
        /// <param name="numberOfBuckets">The number of parts to break the time window.</param>
        private HystrixRollingNumber(ITime time, IHystrixProperty<int> timeInMilliseconds, IHystrixProperty<int> numberOfBuckets)
        {
            this.time = time;
            this.timeInMilliseconds = timeInMilliseconds;
            this.numberOfBuckets = numberOfBuckets;

            if (timeInMilliseconds.Get() % numberOfBuckets.Get() != 0)
            {
                throw new ArgumentException("The timeInMilliseconds must divide equally into numberOfBuckets. For example 1000/10 is ok, 1000/11 is not.");
            }

            this.buckets = new BucketCircularArray<Bucket>(numberOfBuckets.Get());
        }