使功能不等待其中的其他功能

社交病

我的flask服务如下:

from flask import Flask, request
import json
import time


app = Flask(__name__)

@app.route("/first", methods=["POST"])
def main():
    print("Request received")

    func1()

    return json.dumps({"status": True})


def func1():
    time.sleep(100)
    print("Print function executed")


if __name__ == "__main__":
    app.run("0.0.0.0", 8080)

所以现在当我使用http:// localhost:8080 / first发出请求时

  • 控件转到main方法,它打印Request received并等待func1执行,然后返回{"status": True}

但是现在我不想等待func1完成其执行,而是将其发送{"status": True}func1继续执行。

陈阿

为了回复flask的请求,您需要完成修饰的功能(在您的情况下为main)。

如果要并行执行某项,则需要在另一个线程或进程中执行。多进程应用程序用于实现多个CPU。(CPU绑定); 在您的情况下,只需要并行执行即可,因此最好使用线程。

一种简单的技术是使用ThreadPool。ThreadPoolExecutorcurrent.futures导入,然后向其提交工作,这使您的函数执行代码得以继续。尝试这个:

from flask import Flask, request
import json
import time
import os
from concurrent.futures import ThreadPoolExecutor


app = Flask(__name__)


# Task manager executor
_threadpool_cpus = int(os.cpu_count() / 2)
EXECUTOR = ThreadPoolExecutor(max_workers=max(_threadpool_cpus, 2))


@app.route("/first", methods=["POST"])
def main():
    print("Request received")
    EXECUTOR.submit(func1)
    return json.dumps({"status": True})


def func1():
    time.sleep(2)
    print("Print function executed")


if __name__ == "__main__":
    app.run("0.0.0.0", 8080)

这将func1在不同的线程中运行,从而使flask能够在不阻塞的情况下响应用户func1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

异步功能不等待Promise

来自分类Dev

我的异步功能不等待Firebase的承诺

来自分类Dev

其他功能不起作用

来自分类Dev

其他功能中的功能不可访问

来自分类Dev

返回不等待异步功能

来自分类Dev

为什么javascript异步功能不等待firebase.auth方法完成?

来自分类Dev

计时器功能不会接受其他参数

来自分类Dev

角度等待不等待功能完成

来自分类Dev

功能不等到数据下载完毕

来自分类Dev

在其他功能中反应组件异步等待

来自分类Dev

React Native不等待功能完成

来自分类Dev

在C中获取功能而不等待输入

来自分类Dev

等待功能不会并行发生

来自分类Dev

从其他功能返回

来自分类Dev

Google自定义搜索的优化功能不会重定向到其他网站。

来自分类Dev

CSS溢出-Y:滚动覆盖我的代码和其他功能不起作用

来自分类Dev

Google自定义搜索的优化功能不会重定向到其他网站。

来自分类Dev

SSRS:如果交换机内的其他功能不起作用

来自分类Dev

ActionScript 2.0是否以及其他功能不起作用?

来自分类Dev

切换到其他用户时 CLI 功能不起作用

来自分类Dev

动画功能比其他功能好

来自分类Dev

计划功能以组合其他功能

来自分类Dev

无法从其他功能调用功能

来自分类Dev

其他模块的模拟功能

来自分类Dev

访问其他功能元素

来自分类Dev

在返回结果之前,nodejs不等待异步功能完成

来自分类Dev

为什么水豚功能测试不等待?

来自分类Dev

使等待功能不断执行某些操作(如果失败)

来自分类Dev

等待功能不起作用Android Studio