2017-12-18 273 views
1

正如标题所述,我创建了一个单独的线程来执行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

有一个你试过__ctrl + z__ – babygame0ver

+0

然后在try中添加你的代码除了处理键盘中断和在那个事件中暂停/停止你的线程 – Gahan

+0

** ctrl + z **可以工作,但是有没有其他的方式来检查main_thread活着。 – CoXier

回答

1

您可能希望将您的线程设置为daemon

一个线程会一直运行,直到它自行结束或者它被明确地终止。

守护线程以相同条件运行,并且至少有另一个非守护线程正在运行:这意味着如果您结束了主线程并且没有其他线程正在运行,则所有守护线程也将结束。

如果你使用线程模块,您可以设置线程的后台。通过改变自己的布尔:

import threading 
your_thread.daemon = True 

如果你使用线程模块,它应该是kwargs

+0

感谢您的回答。 – CoXier

相关问题