谷歌应用引擎任务队列的配置如下(示例)
<queue>
<name>mail-queue</name>
<rate>5/m</rate>
<bucket-size>10</bucket-size>
</queue>
这里的“bucket-size”是什么意思?我在Google App Engine文档中找不到详细的说明。
将其指定为10是否意味着如果在某一时刻排队了100个任务,只有其中的10个会被放入队列,其余的将被忽略?
谷歌应用引擎任务队列的配置如下(示例)
<queue>
<name>mail-queue</name>
<rate>5/m</rate>
<bucket-size>10</bucket-size>
</queue>
这里的“bucket-size”是什么意思?我在Google App Engine文档中找不到详细的说明。
将其指定为10是否意味着如果在某一时刻排队了100个任务,只有其中的10个会被放入队列,其余的将被忽略?
在此链接中详细描述了 bucket-size:
限制队列处理的突发性,即更高的 bucket size 允许队列执行速率的更大波动。例如,考虑一个速率为5/s并且 bucket size 为10的队列。如果该队列已经长时间处于非活动状态(允许其“令牌桶”填满)并且有20个任务突然入队,则它将立即执行10个任务。但在下一秒钟,只能执行5个任务,因为“令牌桶”已被耗尽并以每秒5个的指定速率重新填充。
如果未为队列指定 bucket_size,则默认值为5。
对于您的情况,这意味着,如果排队了100条消息,则只有10条直接被执行,每隔一分钟才会执行另外5条。您不会失去任何消息,但如果您的 bucket-size 和速率过低,则它们将排队等待执行。