谷歌应用引擎task queues的配置如下所示(示例)
<queue>
<name>mail-queue</name>
<rate>5/m</rate>
<bucket-size>10</bucket-size>
</queue>这里,“存储桶大小”是什么意思?我在google app engine文档中找不到关于这方面的全面文档。
如果将其指定为10,是否意味着如果100个任务同时排队,则只有10个任务将被放入队列中,其余任务将被忽略?
发布于 2010-09-18 16:07:19
存储桶大小被完美地描述为here
限制了队列处理的突发性,即更大的存储桶大小允许队列的执行速率出现更大的峰值。例如,假设一个队列的速率为5/s,存储桶大小为10,如果该队列已经有一段时间处于非活动状态(允许它的“令牌存储桶”填满),并且突然有20个任务进入队列,那么它将被允许立即执行10个任务。但在接下来的一秒中,由于令牌桶已经耗尽,正在以指定的5/s速率重新填充,因此只能再执行5个任务。
如果没有为队列指定bucket_size,则默认值为5。
对于您的情况,这意味着如果100条消息被排队,那么只有10条消息被直接执行,每隔一分钟就会有另外5条消息被执行。您不会丢失任何消息,但如果您的存储桶大小和速率太低,它们将排队。
https://stackoverflow.com/questions/3740835
复制相似问题