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 以便它开始执行
目前我正在尝试使用适当的线程来执行一堆脚本。
它们是这样排序的: 主线程(运行 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 以便它开始执行