Python Flask 后端中的线程脚本执行

Python threading script execution in Flask Backend

目前我正在尝试使用适当的线程来执行一堆脚本。

它们是这样排序的: 主线程(运行 Flask 应用程序) -分析线程(运行调用所有需要的脚本的分析脚本) -3 个不同的函数作为线程执行(分为 3 个部分以便分析运行更快)

我的问题是我有一个带有分析线程的全局变量,以便能够在调用后确定线程是否 运行。第一次启动时 运行 就好了。然后你可以随心所欲地调用那个端点,它不会做任何事情,因为我 return 一个 423 表明线程(分析)仍然是 运行。所有脚本完成后,带有 analysis_thread.isAlive() return 的 if 子句应该是假的,并尝试使用 analysis_thread.start() 再次开始分析,但这不起作用,它抛出一个异常说该线程已经处于活动状态,无法启动两次。

有没有办法实现脚本可以启动,虽然它是 运行 它 return 是另一个代码但是当它完成后我可以再次启动它?

感谢阅读和帮助

克里斯托夫

现在希望可行的解决方案是永远不要停止线程,让它等待。

在分析脚本中我有一个全局变量,它指示默认设置为 False 的状态。

在函数内部运行两次:

while True:
    while not thread_status:
        time.sleep(30)
    execution of the other scripts.
    thread_status = False # to ensure the execution runs just once.

然后我将控制器中的标志设置为 True class 以便它开始执行