198
operatorRPSRatio OperatorRPSRatio,
199
burstRatio PersistenceBurstRatio,
200
>
) quotas.RequestRateLimiter {
quotas.go
201
>
rateLimiters := make(map[int]quotas.RequestRateLimiter)
202
>
for priority := range RequestPrioritiesOrdered {
203
>
if priority == CallerTypeDefaultPriority[headers.CallerTypeOperator] {
204
>
rateLimiters[priority] = quotas.NewRequestRateLimiterAdapter(
205
>
quotas.NewDefaultRateLimiter(
206
>
operatorRateFn(rateFn, operatorRPSRatio),
207
>
quotas.BurstRatioFn(burstRatio),
208
>
),
209
>
)
210
>
} else {
211
>
rateLimiters[priority] = quotas.NewRequestRateLimiterAdapter(
212
>
quotas.NewDefaultRateLimiter(
213
>
rateFn,
214
>
quotas.BurstRatioFn(burstRatio),
215
>
),
216
>
)
217
>
}
218
}
219
220
>
return quotas.NewPriorityRateLimiter(
quotas.go
221
>
requestPriorityFn,
222
>
rateLimiters,
223
>
)
224
}
225