using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CoreCms.Net.Model.ViewModels.Options { /// /// 限速设置器配置文件 /// 用于UseRateLimiter /// public class MyRateLimitOptions { /// /// 限速器节点名称 /// public const string MyRateLimit = "MyRateLimit"; /// /// 一个窗口中允许的最大允许计数器数。 在将这些选项传递给 的FixedWindowRateLimiter构造函数时,必须设置为值 > 0。 /// public int PermitLimit { get; set; } = 100; /// /// 指定请求的时间范围。 必须设置为大于 Zero 将这些选项传递给 的构造函数 FixedWindowRateLimiter时的值。 /// public int Window { get; set; } = 10; /// /// 当 AutoReplenishment 设置为 true 时,内部计时器每 ReplenishmentPeriod 时间补充一次令牌数;当 false 设置为 TryReplenish 时,应用必须对限制器调用 。 /// public int ReplenishmentPeriod { get; set; } = 2; /// /// 排队的获取请求的最大累计允许计数。 将这些选项传递给 的FixedWindowRateLimiter构造函数时,必须设置为值 >= 0。 /// public int QueueLimit { get; set; } = 2; /// /// /// public int SegmentsPerWindow { get; set; } = 8; /// /// /// public int TokenLimit { get; set; } = 10; /// /// /// public int TokenLimit2 { get; set; } = 20; /// /// /// public int TokensPerPeriod { get; set; } = 4; /// /// 是否自动补货 /// public bool AutoReplenishment { get; set; } = false; } }