我想创建一个执行以下操作的Google App Engine应用程序:
问题是服务器处理(步骤#2)可能需要30秒以上。
我知道您无法在Google Application Engine上拥有线程,并且所有任务必须在30秒内完成或关闭。有办法解决这个问题吗?
另外,我正在使用python-django作为后端。
答案 0 :(得分:4)
您可能希望使用Task Queue API,可能是deferred tasks。 deferred
API使得使用任务队列变得非常简单。
基本上,您需要生成一个任务来开始处理。该任务应该捕获DeadlineExceeded
个异常并重新安排自己(再次通过deferred
API)继续处理。这要求您的任务能够跟踪自己的进度。他们还可以在memcache中更新自己的状态,您可以使用它来编写检查任务状态的视图。然后可以通过Ajax轮询该视图。