在Google App Engine中,队列的“桶大小”是什么意思?
-
03-10-2019 - |
题
Google App引擎 任务队列 具有配置为(示例)
<queue>
<name>mail-queue</name>
<rate>5/m</rate>
<bucket-size>10</bucket-size>
</queue>
在这里,“桶大小”是什么意思?在Google App Engine文档中,我找不到有关此的全面文档。
将其指定为10是否意味着,如果在瞬间排队100个任务,将仅将其中的10个排在队列中,而休息将被忽略?
解决方案
水桶大小是完美描述的 这里:
限制了队列处理的爆发,即更高的桶尺寸可以使队列的执行率更大。例如,考虑一个5/s的队列,桶大小为10。如果该队列不活动一段时间(允许其“代币桶”填充),并且突然重建了20个任务,它将允许立即执行10个任务。但是在接下来的第二个中,由于令牌存储桶已经耗尽,并且以5/s的指定速率加入,因此只有5个任务可以执行。
如果未为队列指定bucket_size,则默认值为5。
对于您的情况,这意味着,如果排队100条消息,只有10条直接执行,第二分钟再执行5个。您不会松散任何消息,但是如果您的桶形和费率太低,它们会排队。
不隶属于 StackOverflow