以编程方式防止已分配的Google App Engine配额耗尽

nem*_*ixx 5 python google-app-engine gae-quotas

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

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

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

有什么建议?

sys*_*out 5

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

例如:

queue:
- name: mail-throttle
  rate: 2000/d
  bucket_size: 10
- name: background-processing-throttle
  rate: 5/s
Run Code Online (Sandbox Code Playgroud)

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

一些警告:
1.队列提供尽力而为的FIFO命令
2.任务的排队/执行计入几个配额

  • @mcn你无能为力,[NAT打破互联网](http://www.unicom.com/blog/entry/155) (2认同)