最近碰到个事情需要在flask启动的时候定时清理一些数据, 以前都是用的apscheduler, 但是这次的任务比较简单,定时上报一些请求信息, 不太想通过第三方包的方式进行操作, 看了一下threadi
|
最近碰到个事情需要在flask启动的时候定时清理一些数据, 以前都是用的apscheduler, 但是这次的任务比较简单,定时上报一些请求信息, 不太想通过第三方包的方式进行操作, 看了一下threading源码,在提供Thread主函数的同时, 还提供了一个Timer的类,接下来就围绕这个Timer来说明如何启动轻量定时任务
Timer官方的说明
大概意思就是: 函数会在你设定的时间后执行, 注意这里是只执行一次,所以没有达到我们想要的定时执行,我们结合flask server来演示下如何定时执行。 代码
结果:
存在的问题: 当任务在定时时间内不能结束,那么在很短的时间内造成线程堆积,导致程序终止,所以我们进行改进。 改进
使用while True的方式保持这个Timer线程不停止, 这样就只会有一个线程在后台执行,也不会造成线程堆积最终程序退出。 |
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27