定時後臺執行Python程式
大型程式中經常會需要定時執行某些任務,比如生成報表,發郵件等。複雜的方法會用到訊息佇列,用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在後臺和開機直接執行。