TaskQueue GAE没有显示任何内容

时间:2012-11-26 10:20:34

标签: python google-app-engine

我可以看到我的任务正在运行但我在自己的页面上看不到任何东西self.response.out.write()

我这样做:

class CounterWorker(webapp.RequestHandler):
  def post(self): # should run at most 1/s
    self.response.out.write("<a href='/'>start over</a><br /><br />")

class MainHandler(webapp.RequestHandler):
  def post(self, mode=""):
      taskqueue.add(url='/worker', countdown=10)

1 个答案:

答案 0 :(得分:3)

没有。我不明白为什么你会期望任何输出。

任务是一个单独的过程。任务的重点在于它与与用户交互的代码完全分开运行。它用于执行不需要用户输出的长时间运行计算。

因此,您的面向用户的代码 - 需要在30秒内完成 - 接受来自用户的任何参数,触发任务,然后立即响应用户(例如,“处理触发”)。然后你的任务就会消失并完成它的工作。该任务无法直接与用户通信,因为原始请求已完成

如果你愿意,你可以让你的任务在某个地方(在数据存储实体或内存缓存中)设置一个标志来确定处理的当前状态,然后你可以编写一些Ajax来调用访问该标志的处理程序和告诉用户它是否完成。但是你根本无法直接写入任务中的输出。