8

关于 Bucket_size 参数的 Google 文档只给出了一个简短的定义、一个维基百科链接和一个示例:

桶大小

限制队列处理的突发性,
即更大的桶大小允许队列执行率的更大峰值。例如,考虑一个速率为 5/s 且桶大小为 10 的队列。如果该队列已经有一段时间不活动(允许其“令牌桶”填满),并且突然有 20 个任务入队,它将可以立即执行 10 个任务。但是在接下来的一秒内,由于令牌桶已经耗尽,并且正在以指定的 5/s 速率重新填充,因此只能再执行 5 个任务。

您能否解释一下Bucket_size参数以及该参数在哪些方面有用?

4

2 回答 2

4

您发布的解释相当全面。

任务队列只有在桶中有足够的令牌时才会执行任务,并以您指定的速率重新填充桶。

例如,您可能希望使用较低的 bucket_size 来避免达到每分钟电子邮件配额,或者避免同时运行太多需要使用相同实体组来减少争用的任务。

在不知道您想对自己的任务做什么的情况下,很难就如何设置此参数提出建议;对于大多数用途,默认值可能非常好。

于 2010-07-29T16:11:51.423 回答
4

最简单的描述方式是它定义了您允许队列服务的需求峰值有多高。

例如,如果您为 5/s 请求定义一个队列,存储桶为 10。这意味着它将主要以每秒 5 个请求的速率执行,但当它到达时,它将达到每秒 10 个请求的峰值。

于 2010-07-29T19:33:34.520 回答