在Google App Engine中填充许多延迟任务的任务队列的最佳存储桶大小是多少?

Ing*_*ngo 3 python java google-app-engine task-queue deferred-execution

我的谷歌App Engine应用程序被添加了大量的延迟任务任务队列.任务计划每x秒运行一次.如果我正确理解了bucket-size属性b,则高值将阻止延迟任务运行,直到添加了b任务.但是,有一个接近实时的要求,即任务按计划运行.我不希望在达到桶大小之前阻止任务.相反,他们应该尽可能接近他们的预定时间.

为了支持这个用例,我应该使用1的桶大小和500 的速率(这是当前的最大速率)吗?还有哪些方法可以支持这个?谢谢!

Eri*_*ers 6

存储桶大小不会阻止任务单独运行.它扮演着不同的角色.

假设您有一个空队列,其速率为每秒500个任务,而几个小时则没有添加或启动任务.然后突然间立即添加了大量任务.您想立即开始执行多少这些任务?将此数字设置为您的铲斗尺寸.例如,当桶大小为1000时,将立即启动1000个任务(然后每秒500个任务).

这是如何运作的?该桶每秒加满500个令牌(队列的速率),最大为桶大小.当有任务可用于启动时,它们将仅在存储桶不为空时启动,并且在每个任务启动时将从存储桶中删除一个令牌.