2011-03-25 216 views
1

我的appengine应用程序经常抛出这个异常。 这是因为appengine应用程序在中国被阻止,所以我使用第三方服务绕过阻塞。我的应用程序需要调用中国的API来满足请求。我知道很多人都没有这个问题,请帮忙。 我知道限制是30秒,我不能让谷歌延长它。google.appengine.runtime.DeadlineExceededError解决方案?

+1

是否需要在Web处理程序中调用API调用?你能把这个任务移动到一个任务队列吗? – systempuntoout 2011-03-25 08:41:54

+0

当您将它移动到任务队列时,您会在引发DeadlineExceededError之前获得大约10分钟的计算时间 – Sam 2011-03-25 12:38:11

回答

1

您可以使用Task Queue来执行实际请求,并让客户端轮询结果或使用Channel API。这会将您的限制增加到10分钟而不是30秒。

所以,例如:

  • 浏览器经由AJAX使得请求
  • Server返回通道令牌和序幕任务
  • 浏览器打开信道,并等待响应
  • 任务提供了通过信道浏览器响应