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

Gop*_*opi 21 google-app-engine bucket task-queue

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

  <queue>
    <name>mail-queue</name>
    <rate>5/m</rate>
    <bucket-size>10</bucket-size>
  </queue>
Run Code Online (Sandbox Code Playgroud)

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

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

hal*_*dan 33

桶尺寸在这里有完美的描述:

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

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

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