2

我想制作一个执行以下操作的 Google App Engine 应用:

  1. 客户端发出异步 http 请求
  2. 服务器开始处理该请求
  3. 客户端发出ajax http请求以获得进度

问题是服务器处理(步骤#2)可能需要超过 30 秒。

我知道您不能在 Google Application Engine 上拥有线程,并且所有任务都必须在 30 秒内完成,否则它们将被关闭。有没有办法解决这个问题?

另外,我使用 python-django 作为后端。

4

1 回答 1

4

您可能希望通过延迟任务来使用任务队列API 。该API 使使用任务队列变得非常简单。deferred

本质上,您需要生成一个任务来开始处理。该任务应捕获DeadlineExceeded异常并重新安排自身(再次通过deferredAPI)以继续处理。这要求您的任务能够跟踪自己的进度。他们还可以在 memcache 中更新自己的状态,您可以使用它来编写检查任务状态的视图。然后可以通过 Ajax 轮询该视图。

于 2010-10-12T18:27:47.693 回答