Google应用引擎终止我的功能

时间:2013-08-21 15:40:29

标签: python google-app-engine

我使用Google App Engine开发应用,但我遇到了问题。该项目是一项研究项目,我的职能很少。统计分析,自然语言处理等。

很少有功能需要超过20秒才能完成。

其中一个是网站的api,我称之为链接并返回字典。但是,当我调用它时,在4-5秒后,浏览器停止加载并返回一个空值。没什么。

如果我离线运行该函数,作为一个简单的python函数运行服务器,我会在10-15秒后得到结果。

有没有办法增加加载时间或其他能解决问题的方法?

2 个答案:

答案 0 :(得分:4)

在Google App Engine中,每个请求的硬超时为30秒,因此如果您需要更多,则必须使用Task Queue APIBackends 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