70
config *taskQueueConfig,
71
taskQueueType enumspb.TaskQueueType,
73
>
r := &rateLimitManager{
74
>
userDataManager: userDataManager,
75
>
config: config,
76
>
taskQueueType: taskQueueType,
77
>
perKeyReady: cache.New(config.FairnessKeyRateLimitCacheSize(), nil),
78
>
timeSource: clock.NewRealTimeSource(),
79
>
}
80
>
r.dynamicRateBurst = quotas.NewMutableRateBurst(
81
>
defaultTaskDispatchRPS,
82
>
int(defaultTaskDispatchRPS),
83
>
)
84
>
r.dynamicRateLimiter = quotas.NewDynamicRateLimiter(
85
>
r.dynamicRateBurst,
86
>
config.RateLimiterRefreshInterval,
87
>
)
88
>
return r
89
>
}
90
91
// Start registers dynamic config subscriptions and computes the initial rate limits.