正如标题所描述的那样,我创建了一个单独的线程来完成Flask
中的长任务。
import schedule
import time
start_time = time.time()
def job():
print("I'm working..." + str(time.time() - start_time))
def run_schedule():
while True:
schedule.run_pending()
time.sleep(1)
当我按Ctrl + c
终止服务器时,线程仍为prints
。 如何在服务器退出时停止线程?
答案 0 :(得分:2)
您可能希望将线程设置为daemon。
一个线程一直运行直到它自己结束或者它被明确地杀死。
守护程序线程以相同的条件运行,并且如果至少有一个其他非守护程序线程正在运行:这意味着如果您结束主线程并且没有其他线程正在运行,则所有守护程序线程也将结束。
如果您正在使用线程模块,可以通过更改其布尔值将线程设置为守护程序:
import threading
your_thread.daemon = True
如果你正在使用线程模块,它应该是kwargs之一