我的应用程序中有一个函数使用大量资源,并且需要时间来执行。 这是正常且可控的,但是由于 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/