谷歌应用引擎中队列的“桶大小”是什么意思?

时间:2010-09-18 08:03:26

标签: google-app-engine task-queue bucket

Google应用引擎task queues的配置为(示例)

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

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

将此指定为10意味着如果100个任务在一个时刻排队,那么其中只有10个将被放入队列并且其余部分将被忽略?

1 个答案:

答案 0 :(得分:32)

桶大小完美描述here

  

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

     

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

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