Google 应用引擎任务队列的配置为(示例)
<queue>
<name>mail-queue</name>
<rate>5/m</rate>
<bucket-size>10</bucket-size>
</queue>
在这里,“桶大小”是什么意思?我在谷歌应用引擎文档中找不到关于此的全面文档。
将其指定为 10 是否意味着如果 100 个任务同时排队,则只有其中的 10 个将被放入队列中,其余的将被忽略?
Google 应用引擎任务队列的配置为(示例)
<queue>
<name>mail-queue</name>
<rate>5/m</rate>
<bucket-size>10</bucket-size>
</queue>
在这里,“桶大小”是什么意思?我在谷歌应用引擎文档中找不到关于此的全面文档。
将其指定为 10 是否意味着如果 100 个任务同时排队,则只有其中的 10 个将被放入队列中,其余的将被忽略?
bucket-size在这里得到了完美的描述:
限制队列处理的突发性,即更大的桶大小允许队列执行率的更大峰值。例如,考虑一个速率为 5/s 且桶大小为 10 的队列。如果该队列已经有一段时间不活动(允许其“令牌桶”填满),并且突然有 20 个任务入队,它将可以立即执行 10 个任务。但是在接下来的一秒内,由于令牌桶已经耗尽,并且正在以指定的 5/s 速率重新填充,因此只能再执行 5 个任务。
如果队列没有指定 bucket_size,则默认值为 5。
对于您的情况,这意味着如果有 100 条消息排队,则只有 10 条消息被直接执行,每下一分钟再执行 5 条消息。您不会丢失任何消息,但如果您的存储桶大小和速率太低,它们会排队。