话不多说,上代码
def job():
ticker = threading.Event()
while not ticker.wait(60):
Cron().main()
def start():
cro=threading.Thread(target=job)
cro.start()
h = '127.0.0.1'
port = 9007
dic = {"host": h,
"port": port,
"log_level": "error",
"reload":True,
}
uvicorn.run('ctrm:app', **dic)
但是这么运行会有一个问题,就是ctrl c退出有可能定时任务正运行被打断,结合这个代码,仅仅展示最核心部分,注意信号量去sigint,兼容性更强。
import signal
import time,os
def signal_handler(signum, frame):
print('收到要杀死我的信号: ', signum)
# 在这里处理最后的事情
print ("下面的代码是自杀")
os.kill(os.getpid(), signal.SIGINT)
signal.signal(signal.SIGTERM, signal_handler)
signal.signal(signal.SIGINT, signal_handler)
while True:
print ("main")
time.sleep(5)