【问题标题】:Python Futures Concurrent not working in FlaskPython Futures Concurrent 在 Flask 中不起作用
【发布时间】:2021-05-07 14:09:00
【问题描述】:

我在python中获取结果的一种方法中使用Python Futures Concurrent,当我在单个文件上尝试它时它工作正常,但是当我将它与Flask Api集成时,结果未定义,我调试并发现烧瓶 api 正在返回结果,甚至没有等待期货完成处理结果。在处理结果之前如何停止它。

flask api调用的函数中的期货代码:

with concurrent.futures.ThreadPoolExecutor() as executor:
    futures_np1 = [executor.submit(self.get_test_score, data, param) for param in param_list]
    futures_np2 = [executor.submit(self.get_test_score, param, data) for param in param_list]


result1 = [f.result() for f in futures_np1]
result2 = [f.result() for f in futures_np2]
return self.get_average_score(result1, result2)

谁能根据给定的问题提供更好的多线程替代方案来加快处理速度?

【问题讨论】:

    标签: python python-3.x flask flask-restful concurrent.futures


    【解决方案1】:

    如果有人在寻找答案。出现问题是因为我将多个参数传递给返回结果列表的期货,这将在普通 python 上完美运行,但在烧瓶中它不起作用,所以要解决这个问题,您只需一次提交一个请求使用循环。示例:

    with concurrent.futures.ThreadPoolExecutor() as executor:
        for param in param_list:
            futures_np1 = executor.submit(self.get_test_score, data, param)
            result1.append(futures_np1.result())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-14
      • 2016-10-16
      • 1970-01-01
      • 2019-02-06
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 2020-08-08
      相关资源
      最近更新 更多