我有一个简单的Flask web应用程序,当用户按下按钮时,它会向外部服务发出许多HTTP请求。在客户端,我有一个angularjs应用程序。worker = MyWorkerClass()
pool = Pool(processes=10)
result_objs = [pool.apply_async(worker.do_work, (q,))
for q in queries]
pool.close() # Close pool
pool.join() # Wait for all task to finish
errors = not all(obj.successful() for obj in result_objs)
# extract result only from successful task
items = [obj.get() for obj in result_objs if obj.successful()]
如您所见,我正在使用apply_async,因为我想稍后检查每个任务,并仅在任务没有引发任何异常时从中提取结果。
我知道为了在客户端显示进度条,我需要在某个地方发布已完成任务的数量,所以我制作了一个简单的视图,如下所示:@app.route('/api/v1.0/progress', methods=['GET'])
def view_progress():
return jsonify(dict(progress=session['progress']))
它将显示会话变量的内容。现在,在这个过程中,我需要用已完成的任务数更新这个变量(要完成的任务总数是固定的和已知的)。
有什么办法吗?我在正确的方向工作?
我也看到过类似的问题,比如this one,但我无法根据我的情况调整答案。
谢谢你。