@@ -61,6 +61,48 @@ public static IServiceCollection AddGeoLocationProvider<T>(this IServiceCollecti
6161 services . AddSingleton < IGeoLocationProvider , T > ( ) ;
6262 return services ;
6363 }
64+
65+ /// <summary>
66+ /// Add QPS priority policy service / 添加QPS优先级策略服务
67+ /// </summary>
68+ /// <param name="services">Service collection / 服务集合</param>
69+ /// <param name="configure">Configuration action / 配置操作</param>
70+ /// <returns>Service collection / 服务集合</returns>
71+ public static IServiceCollection AddQpsPriorityPolicy (
72+ this IServiceCollection services ,
73+ Action < QpsPriorityPolicy > configure = null )
74+ {
75+ var policy = new QpsPriorityPolicy ( ) ;
76+ configure ? . Invoke ( policy ) ;
77+
78+ services . AddSingleton ( policy ) ;
79+ services . AddSingleton < PriorityListService > ( ) ;
80+ services . AddSingleton < QpsPriorityManager > ( ) ;
81+
82+ return services ;
83+ }
84+
85+ /// <summary>
86+ /// Add QPS priority policy service from configuration / 从配置添加QPS优先级策略服务
87+ /// </summary>
88+ /// <param name="services">Service collection / 服务集合</param>
89+ /// <param name="configuration">Configuration / 配置</param>
90+ /// <param name="sectionName">Configuration section name (default: "QpsPriorityPolicy") / 配置节名称(默认:"QpsPriorityPolicy")</param>
91+ /// <returns>Service collection / 服务集合</returns>
92+ public static IServiceCollection AddQpsPriorityPolicy (
93+ this IServiceCollection services ,
94+ IConfiguration configuration ,
95+ string sectionName = "QpsPriorityPolicy" )
96+ {
97+ var policy = new QpsPriorityPolicy ( ) ;
98+ configuration . GetSection ( sectionName ) . Bind ( policy ) ;
99+
100+ services . AddSingleton ( policy ) ;
101+ services . AddSingleton < PriorityListService > ( ) ;
102+ services . AddSingleton < QpsPriorityManager > ( ) ;
103+
104+ return services ;
105+ }
64106 }
65107}
66108
0 commit comments