大数据 爬虫Python AI Sql程序员

定时后台运行Python程序

2018-09-24  本文已影响6人  DigiHacker

大型程序中经常会需要定时运行某些任务,比如生成报表,发邮件等。复杂的方法会用到消息队列,用API调用一个接口定时运行你的任务。简单的用Cron或者Windows里的计划任务。而Python提供了一个更简单的方法。

Cron需要的是给出一行指定时间范围。Python只需要pip install schedule, 我们就可以象写伪代码一样交待它运行就可以了。下面是一个例子


1.png

在main方法里我们要定时运行home和news, 在import schedule, 每个方法调用下就可以了,注意方法名就可以,不要加括号


2.png

但我们总不能等三分钟或者一小时看任务执行情况吧,这里就需要用日志记录下,方便我们调试。我们就用Python自带的logging就够用了


3.png

用basicConfig方法做一些初始化的工作就好,比如log文件名和loglevel. 因为我们主要是记载方法的运行情况,所以用information(INFO) 级别就比较适合

schedule会自带记录到log里,包括了方法名和运行时间,所以我们也不用特意去写log方法


4.png

这样我们就可以运行一次就好,因为是个死循环,除非我们ctrl+c去中断任务,它会一直运行到天荒地老。但是这还是个前台任务,我们可以用一些方法让它作为windows service或者Linux daemon在后台和开机直接运行。

上一篇 下一篇

猜你喜欢

热点阅读