Python使用signal定时结束AsyncIOScheduler任务的问题
程序员文章站
2023-12-29 13:01:34
在使用aiohttp结合apscheduler的asyncioscheduler模拟定点并发的时候遇到两个问题在调度器scheduler.start()后,程序直接退出(在jupiter中任务可以正常...
在使用aiohttp结合apscheduler的asyncioscheduler模拟定点并发的时候遇到两个问题
- 在调度器scheduler.start()后,程序直接退出(在jupiter中任务可以正常启动)
- 如何在指定时间调用scheduler.shutdown()? (因为程序直接退出了)
原调试代码如下:
google后发现asyncioscheduler的使用需要在scheduler启动后,需要自己调用asyncio.get_event_loop().run_forever()
来启动协程任务。
但是一旦run_forever()则就会阻塞至死。除非有keyboardinterrupt, systemexit等异常或者强杀来停止其运行。
此时想到使用python的signal来定时发送信号,修改后程序如下,可以正常延迟停止(感觉有点像模拟go的defer)。
到此这篇关于python使用signal定时结束asyncioscheduler任务的文章就介绍到这了,更多相关python定时结束asyncioscheduler任务内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!