python - Google App Engine 任务队列如何工作?

标签 python google-app-engine queue task

我对使用队列执行任务感到困惑。我已经阅读了文档,我以为我理解了 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/

相关文章:

android - 如何在 Android Studio 中将 App Engine 后端设置为 "Run As Web Application"

google-app-engine - 如何使 google app engine 端点在 mailgun 域中得到验证

java - 为什么 ArrayBlockingQueue 使用数组来删除内部缓冲区?

c编程,队列和模块问题

python - 如何计算带有行和列标题的Python数据透视表的行百分比和列百分比?

python - 计算字典中项目之间最大差异的最佳方法

Python授权imgur OAuth2.0身份验证获取subreddit图库

java - 使用 @JsonString 注释在 Google Endpoint 中生成 JSON

Python:如何在 PyQt 中控制 Lineedit 输入和输出

php - 如何在 laravel 5 队列前后触发代码?