23

Google 应用引擎任务队列的配置为(示例)

  <queue>
    <name>mail-queue</name>
    <rate>5/m</rate>
    <bucket-size>10</bucket-size>
  </queue>

在这里,“桶大小”是什么意思?我在谷歌应用引擎文档中找不到关于此的全面文档。

将其指定为 10 是否意味着如果 100 个任务同时排队,则只有其中的 10 个将被放入队列中,其余的将被忽略?

4

1 回答 1

35

bucket-size在这里得到了完美的描述:

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

如果队列没有指定 bucket_size,则默认值为 5。

对于您的情况,这意味着如果有 100 条消息排队,则只有 10 条消息被直接执行,每下一分钟再执行 5 条消息。您不会丢失任何消息,但如果您的存储桶大小和速率太低,它们会排队。

于 2010-09-18T08:07:18.900 回答