public TimeLimitCommandThrottler(int executionLimit,
                                  int throttlingIntervalInMilliseconds = 60000,
                                  CommandThrottlerLimitingBehavior limitingBehavior =
                                      CommandThrottlerLimitingBehavior.Drop)
     : this(executionLimit, new TimeSpan(0, 0, 0, 0, throttlingIntervalInMilliseconds), limitingBehavior)
 {
 }
        public TimeLimitCommandThrottler(int executionLimit,
                                         TimeSpan throttlingInterval,
                                         CommandThrottlerLimitingBehavior limitingBehavior =
                                             CommandThrottlerLimitingBehavior.Drop)
        {
            Ensure.ArgumentIsGreaterThanZero(executionLimit, "executionLimit");

            ExecutionLimit = executionLimit;
            ThrottlingInterval = throttlingInterval;
            LimitingBehavior = limitingBehavior;

            RefilTokenBucket();
        }