Google App Engine:任务队列中的bucket_size参数

时间:2010-07-29 15:55:43

标签: google-app-engine task-queue

关于Bucket_size参数的Google文档只提供brief definition,维基百科link和示例:

  

bucket_size

     

限制队列处理的突发性,
  即更高的铲斗尺寸允许更大的尖峰   队列的执行率。对于   例如,考虑具有速率的队列   5 / s,桶大小为10.如果   该队列对某些人来说是不活跃的   时间(允许其“令牌桶”到   填补),20个任务突然   入队,它将被允许   立即执行10个任务。但在   接下来的第二个,只有5个   任务将能够执行   因为令牌桶已经存在   耗尽并正在重新填充   指定的速率为5 / s。

您能否提供Bucket_size参数的说明以及此参数可能有用的方式?

2 个答案:

答案 0 :(得分:4)

您发布的解释相当全面。

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

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

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

答案 1 :(得分:4)

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

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