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); }
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); }