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

Flask后端中的Python线程脚本执行,python,multithreading,flask,python-multithreading,flask-restplus,Python,Multithreading,Flask,Python Multithreading,Flask Restplus,目前,我正在尝试使用适当的线程来执行一系列脚本 它们是这样分类的: 主螺纹(运行烧瓶应用程序) -分析线程(运行调用所有所需脚本的分析脚本) -3个不同的函数作为线程执行(分为3个部分,因此分析运行得更快) 我的问题是我有一个全局变量和分析线程,以便在调用后能够确定线程是否正在运行。它第一次启动并运行良好。然后,您可以随时调用该端点,因为我返回423来声明线程(分析)仍在运行,所以它不会做任何事情。所有脚本完成后,带有analysis\u-thread.isAlive()的if子句返回false

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

它们是这样分类的: 主螺纹(运行烧瓶应用程序) -分析线程(运行调用所有所需脚本的分析脚本) -3个不同的函数作为线程执行(分为3个部分,因此分析运行得更快)

我的问题是我有一个全局变量和分析线程,以便在调用后能够确定线程是否正在运行。它第一次启动并运行良好。然后,您可以随时调用该端点,因为我返回423来声明线程(分析)仍在运行,所以它不会做任何事情。所有脚本完成后,带有
analysis\u-thread.isAlive()
的if子句返回false,并尝试使用
analysis\u-thread.start()
再次启动分析,但这不起作用,它抛出一个异常,表示线程已处于活动状态,无法启动两次

是否有一种方法可以实现脚本可以启动,并且在运行时返回另一个代码,但当它完成时,我可以再次启动它

谢谢你的阅读和帮助


Christoph

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

在分析脚本中,我有一个全局变量,它指示默认情况下设置为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,以便它开始执行

如果线程完成,您可以重新运行thread对象,创建一个新线程并运行它。分析线程=线程()。。那么我的问题是我把线程对象设为全局对象,而对象只实例化了一次?