我对使用队列执行任务感到困惑。我已经阅读了文档,我以为我理解了 bucket_size 和 rate,但是当我将 20 个任务发送到一个设置为 5/h、大小为 5 的队列时,所有 20 个任务会尽快一个接一个地执行,不到1 分钟。
deferred.defer(spam.cookEggs,
egg_keys,
_queue="tortoise")
- name: tortoise
rate: 5/h
bucket_size: 5
我想要的是创建 10 个还是 100 个任务,我只希望每小时运行 5 个。因此,完成 20 个任务大约需要 4 个小时。我希望他们的处决分散开来。
更新
问题是我假设在本地运行时,遵循了任务执行率规则,但事实并非如此。您无法在本地测试执行率。当我部署到生产环境时,我设置的速率和存储桶大小按预期执行。
最佳答案
app_devserver 不遵守执行率。生产中不应出现此问题。
[Nick Johnson 和/或问题作者发现的答案;在这里作为社区 wiki 发布,以便我们可以标记为接受的内容]
关于python - Google App Engine 任务队列如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950872/