public LeakageBucketLimitingService(int maxTPS, int limitSize)
        {
            this.limitSize = limitSize;
            this.maxTPS    = maxTPS;

            if (this.limitSize <= 0)
            {
                this.limitSize = 100;
            }
            if (this.maxTPS <= 0)
            {
                this.maxTPS = 1;
            }

            limitedQueue = new LimitedQueue <object>(limitSize);
            cancelToken  = new CancellationTokenSource();
            task         = Task.Factory.StartNew(new Action(TokenProcess), cancelToken.Token);
        }
Exemplo n.º 2
0
        public TokenBucketLimitingService(int maxTPS, int limitSize)
        {
            this.limitSize = limitSize;
            this.maxTPS    = maxTPS;

            if (this.limitSize <= 0)
            {
                this.limitSize = 100;
            }
            if (this.maxTPS <= 0)
            {
                this.maxTPS = 1;
            }

            limitedQueue = new LimitedQueue <object>(limitSize);
            for (int i = 0; i < limitSize; i++)
            {
                limitedQueue.Enqueue(new object());
            }
            cancelToken = new CancellationTokenSource();
            task        = Task.Factory.StartNew(new Action(TokenProcess), cancelToken.Token);
        }