我有一个Flask服务器,它执行一些非常复杂的计算,最多可能需要30分钟才能完成。我编写了代码,以在整个过程中获得最佳结果。例如,我的代码可能在5分钟时产生最高结果,然后在20分钟时产生更好的结果,然后在30分钟时结束该过程。另一个例子是,它可能会在3分钟后返回结果,并在10分钟后停止。
我想将这些热门结果发送到前端的可视化图表中。无论如何,是否可以随时通过Flask API连续流数据?代替传统的单一请求,采用单一响应方法。
我想想Flask路线可能看起来像这样:
@app.route("/stream", methods=["POST"])
def stream():
curr_result = 0
max_result = 0
while True:
curr_result = run_calculations(curr_result)
if not curr_result:
break
if curr_result > max_result:
max_result = curr_result
yield max_result