我使用Google App Engine开发应用,但我遇到了问题。该项目是一项研究项目,我的职能很少。统计分析,自然语言处理等。
很少有功能需要超过20秒才能完成。
其中一个是网站的api,我称之为链接并返回字典。但是,当我调用它时,在4-5秒后,浏览器停止加载并返回一个空值。没什么。
如果我离线运行该函数,作为一个简单的python函数运行服务器,我会在10-15秒后得到结果。
有没有办法增加加载时间或其他能解决问题的方法?
答案 0 :(得分:4)
在Google App Engine中,每个请求的硬超时为30秒,因此如果您需要更多,则必须使用Task Queue API或Backends API。
实现目标的最简单方法是使用deferred library,而不是乱搞任务队列API,这是一个更简单的包装器。在您- deferred: on
中插入app.yaml
后,您可以执行此类操作(来自文档):
from google.appengine.ext import deferred
def do_something_expensive(a, b, c=None):
logging.info("Doing something expensive!")
# Do your work here
# Somewhere else
deferred.defer(do_something_expensive, "Hello, world!", 42, c=True)
但是,由于任务将在您的请求之后完成,您将不得不在数据存储区中的某处写入结果以便稍后检索。
答案 1 :(得分:0)
实际上,听起来你首先要点击urlFetch超时..
https://developers.google.com/appengine/docs/python/urlfetch/
You can set a deadline for a request, the most amount of time the
service will wait for a response. By default, the deadline for a
fetch is 5 seconds. The maximum deadline is 60 seconds for HTTP
requests and 10 minutes for task queue and cron job requests.
更新:您可以使用截止日期属性设置它..
https://developers.google.com/appengine/docs/python/urlfetch/fetchfunction