當前位置: 華文世界 > 科技

定期自動執行指令碼,讓你的金融數據庫及時更新!

2024-10-06科技

上一節課我們配置好了我們的執行環境,今天我來教大家怎麽在不同的環境下配置定時任務,從而自動執行指令碼以更新數據庫。

一、Windows下定時執行指令碼

如果你的電腦是Windows,並且你沒有一台支持Docker的NAS、也沒有一台Linux伺服器,那麽你可以考慮使用Windows內建的工具「任務計劃程式」。

1. 顯示副檔名

首先我們把檔的副檔名顯示出來,這樣才方便我們調整指令碼的檔類別。

開啟檔管理器,在右上角點選這三個點。

然後點選選項。

然後按照這個順序,取消勾選「隱藏已知檔類別的副檔名」。然後點選確定即可。

2. 建立測試指令碼

接下來我們在本地(比如桌面)新建一個文本文件,並且改名為「test.bat」,這裏指令碼名稱中的test之後可以根據指令碼的實際作用靈活調整。副檔名為bat的檔是Windows下可以執行的批處理常式。

然後我們用文字編輯器開啟它,比如老Q用的是VS Code,但實際上記事本也是沒問題的。裏邊要輸入的內容非常簡單,這裏需要指向一個Python指令碼,你可以根據實際情況調整指令碼路徑。

然後我們建立一個文本文件並且改名為test.py,裏邊寫一個簡單的內容用於測試。如下圖,這裏只是讓指令碼打印一句話到螢幕。

好了,我們一共建立了兩個指令碼檔,一個是test.bat,它的作用是用來執行我們的Python指令碼;另一個是test.py,這就是我們需要讓電腦執行的Python指令碼。

3. 配置定時任務

我們在開始功能表中搜尋「任務計劃程式」,點選開啟。

先單機下任務計劃程式庫,然後點選右邊建立基本任務。

起一個響當當的任務名字,點選下一頁。

配置執行周期,比如我們希望每天更新數據,那就選擇每天。然後點選下一頁。

設定第一次任務執行的時間,以及每間隔幾天執行一次。然後點選下一頁。

這一步看似有的選,實則沒得選,畢竟另外兩個都棄用了。

選擇剛才我們建立好的test.bat指令碼,這個指令碼沒有額外的參數,所以別的留空即可。

點選完成即可,之後每天的這個時間,只要你的電腦是開機狀態,就會執行這個指令碼。

到了時間以後,電腦會自動彈出一個視窗,這裏的確把我們的指令碼成功執行了,打印了這麽一句話到視窗。

二、Linux/Mac/Nas下定時執行指令碼

這裏強烈建議大家透過Docker安裝一個青龍面板。

我們在前幾節課講在伺服器中一鍵部署MySQL時用到了1Panel這個工具,事實上,它還支持一鍵安裝很多好用的其他工具。

我們點選開啟1Panel的地址,點選左側的市集,搜尋青龍,並點選安裝。

填一個不沖突的埠即可,如果需要外網存取,可以勾選一下,點選確認直接安裝。

然後我們透過伺服器IP或者NAS的IP加上上邊的網域名稱在瀏覽器中開啟青龍面板,配置完成後長下邊這個樣子。

我們可以先建立一個指令碼,比如就叫test.py,內容可以還用剛才的那一行。

點選保存。

然後我們按如下順序點選建立任務,填好任務名稱和指令碼路徑,然後在定時規則中按crontab格式輸入定時資訊,點選確定即可。

常規crontab語法包含五個部份,用空格隔開,分別對應了分鐘(0-59)、小時(0-23)、日期(1-31)、月份(1-12)和星期(0-7,0或7代表周日)。

星號代表不做指定,在該周期下每次都執行。以圖中的範例來說明,第1個部份填0,代表每個小時的第0分鐘開始執行,第2個部份填2,代表每天的2點執行,第3~5個部份都填「*」,代表每天、每月、一周的每一天都要執行。

如果我們填了"0 2 * 1 1,2,3,4,5",那代表只在1月份的周一到周五的淩晨2點0分執行,其他時間不執行。

建立好任務以後,它就會按照我們的要求定期執行了,我們可以從日誌管理中找到歷史執行日誌,方便檢視任務執行的情況。

當然,在定時任務這裏,我們也可以手動立即執行某個指令碼,或者直接檢視最近一次執行的日誌。

有一個事情需要註意,那就是如果指令碼中有一些我們用到的庫在青龍預設的環境中沒有提供,那麽我們就需要在依賴管理中把它添加好。這裏也支持透過換行符添加多個依賴庫,在下圖中自動拆分那裏選擇是即可。

好了,定時任務就講到這裏,還有不明白的可以留言或者私信老Q。

接下來,我們就要開始正式搞數據了!把我們未來會經常用到的數據,統統搞裏頭!關註老Q,教你從零開始搞量化!