python - 如何保持在 GAE 配额之下?算法设计

标签 python algorithm google-app-engine

我的应用程序中有一个函数使用大量资源,并且需要时间来执行。 这是正常且可控的,但是由于 GAE 限制为 30 秒/请求,我经常会遇到错误。

我的函数接受参数并一个接一个地返回几个结果,减小参数的大小(一个 unicode 字符串)

总结:

def my_function(arg):
    while arg!=u''
        #do_stuff
        #get result
        #arg=new_argument(arg,result)

由于进程消耗资源,我想我可以将它拆分并入队:

def my_function(arg):
    if arg==u''
       #stop
    else:
      do_stuff
      get_result
      enqueue(my_function(new_argument))

但是我担心会低于 100k 调用的 API 队列限制,因为我可能有很多迭代。

我正在考虑将一个请求重定向到另一个,这将连续执行它们,但是我无法控制资源使用:

def my_function(arg):
    if arg==u''
       #stop
    else:
      do_stuff
      get_result
      return redirect('/my_function_url',args=(new_argument))

不知道有没有更好的方法呢?

最佳答案

我建议您使用 Task Queue API,它非常适合此类问题。

请注意,如果您在应用程序上启用计费,您会自动获得更大的免费配额:Task Queue API 调用每日限制增加到 20,000,000。

您可以将最高每日预算设置为低至 1 美元,但您可能无需支付任何费用。

关于python - 如何保持在 GAE 配额之下?算法设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3759637/

相关文章:

c - 星型算法,但仅在四个方向

python - Matplotlib 中标题的格式

python - 理解 python 中的数据库连接池

python - 找到这些向量之间相似性的最佳方法是什么?

python - 为 Google 的全文搜索服务转义搜索查询

google-app-engine - 谷歌应用引擎: lose CSS on deployment?

python - 需要帮助才能让 jinja2 正常工作

python docker sdk如何在container.run中运行多个命令

python - 如何从 JSON 文件中删除键/对象?

algorithm - 适合空间的最大图案数