5

我正在使用 python 开发一个 gae 应用程序。该应用程序涉及一些众包数据收集系统,应用程序中使用的数据由全国用户提交。现在,我正在使用默认配额(免费),但我面临着确保我的应用程序至少 99% 的正常运行时间的问题。

挑战在于,一旦您用尽分配的配额,Google 会阻止任何进一步的请求被路由到您的应用程序,并且在最近的一次测试热潮中,一个人能够构建一个快速耗尽 CPU 配额的自动发布脚本 - 之后,该应用程序只会服务HTTP 403 Forbidden status code for the request instead of calling a request handler。现在,我已经对系统进行了修补,不允许自动发布,但我如何保证人类用户不会在生产时造成类似的“停电”?

我知道配额 API,但我认为只能为我的应用程序提供分析信息,我想要一种降低请求速率(例如每分钟配额的每分钟)而不提供错误页面或停电的方法。

有什么建议么?

4

1 回答 1

5

此问题的一种常见解决方案是将任务委托给速率受限的任务队列

例如:

queue:
- name: mail-throttle
  rate: 2000/d
  bucket_size: 10
- name: background-processing-throttle
  rate: 5/s

通过这种方式,您可以控制应用程序所有部分的使用,强制它们保持在可用配额的范围内。

几个注意事项:
1. 队列提供尽力而为的 FIFO 顺序
2. 任务的排队/执行计入多个配额

于 2011-02-08T10:13:18.090 回答