【发布时间】:2015-01-30 17:32:53
【问题描述】:
我需要快速响应烧瓶中的请求,然后执行一个冗长(可能是多分钟)的任务。
我找到了流式响应:
@app.route('/new_data_notification', methods=['GET', 'POST'])
def push_data():
...
def stream():
yield "OK"
updateData()
return Response(stream(), mimetype="text/plain")
但它没有用。我需要它在它说OK之后关闭请求响应,所以它不会超时。
编辑:原来我还有另一个问题。该代码是应用引擎项目的一部分,因此不允许使用线程。
【问题讨论】:
-
Taskqueues 也许?
-
如果
app.yaml指定runtime: python27和threadsafe: yes,则允许线程。请参阅cloud.google.com/appengine/docs/python/modules/… 以了解可以比产生它们的请求更长的线程。 (尽管正如@SeanVieira 暗示的那样,将任务推送到任务队列通常是一种更好的选择)。
标签: python google-app-engine flask