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