大型程序中經常會需要定時運行某些任務,比如生成報表,發郵件等。複雜的方法會用到消息隊列,用API調用一個接口定時運行你的任務。簡單的用Cron或者Windows裡的計劃任務。而Python提供了一個更簡單的方法。
Cron需要的是給出一行指定時間範圍。Python只需要pip install schedule, 我們就可以像寫偽代碼一樣交待它運行就可以了。下面是一個例子
在main方法裡我們要定時運行home和news, 在import schedule, 每個方法調用下就可以了,注意方法名就可以,不要加括號
但我們總不能等三分鐘或者一小時看任務執行情況吧,這裡就需要用日誌記錄下,方便我們調試。我們就用Python自帶的logging就夠用了
用basicConfig方法做一些初始化的工作就好,比如log文件名和loglevel. 因為我們主要是記載方法的運行情況,所以用information(INFO) 級別就比較適合
schedule會自帶記錄到log裡,包括了方法名和運行時間,所以我們也不用特意去寫log方法
這樣我們就可以運行一次就好,因為是個死循環,除非我們ctrl+c去中斷任務,它會一直運行到天荒地老。但是這還是個前臺任務,我們可以用一些方法讓它作為windows service或者Linux daemon在後臺和開機直接運行。