成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python定時任務(wù)如何實現(xiàn)自動化-創(chuàng)新互聯(lián)

這篇文章主要介紹Python定時任務(wù)如何實現(xiàn)自動化,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的南開網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

1. 安裝cron

基本上所有的Linux發(fā)行版在默認(rèn)情況下都預(yù)安裝了cron工具。

即使未預(yù)裝cron,也很簡單,執(zhí)行幾條簡單的命令就可手動安裝

# 檢查是否已經(jīng)預(yù)裝了cron
service cron status復(fù)制代碼

安裝并啟動服務(wù)

安裝:apt-get install cron
啟動/停止/重啟:service cron start/stop/restart
查詢當(dāng)前任務(wù):crontab -l復(fù)制代碼

2. 安裝檢查

安裝完成后檢查一下是否安裝成功,同樣使用 status命令查看

出現(xiàn)如下提示表示安裝成功:

Python定時任務(wù)如何實現(xiàn)自動化

另外,在ubuntu下可能會出現(xiàn)這樣的提示:

Python定時任務(wù)如何實現(xiàn)自動化

這個也表示可以正常使用

3. cron用法

有幾個關(guān)于cron的簡單用法可以了解一下,后面也會通過一個案例詳細介紹如何使用

首先,列出當(dāng)前用戶計劃的cron作業(yè):

crontab -l復(fù)制代碼

查看其它用戶的cron作業(yè):

crontab –l –u username復(fù)制代碼

移除已經(jīng)計劃的cron作業(yè):

crontab –r復(fù)制代碼

4. 調(diào)度crontab計劃

首先,通過如下命令添加或更新crontab中的任務(wù)

Python定時任務(wù)如何實現(xiàn)自動化

第一次進入會要求你選擇編輯器,這個根據(jù)自己的習(xí)慣選擇。

選擇好之后會進入到這樣的一個界面:

Python定時任務(wù)如何實現(xiàn)自動化

用過vim的同學(xué)應(yīng)該對這個界面不陌生,類似的操作:按A鍵開始編輯,按ESC輸入wq保存并退出

重點是最下面的一段內(nèi)容:

m h dom mon dow commmand復(fù)制代碼

這個其實就是crontab調(diào)度作業(yè)的一個使用介紹,可以用來設(shè)置定時任務(wù)。

具體一點的語法是這樣的:

m h dom mon dow command
* * * * * command
- - - - - -
| | | | | |
| | | | | --- 預(yù)執(zhí)行的命令
| | | | ----- 表示星期0~7(其中星期天可以用0或7表示)
| | | ------- 表示月份1~12
| | --------- 表示日期1~31
| ----------- 表示小時1~23(0表示0點)
------------- 表示分鐘1~59 每分鐘用*或者 */1表示復(fù)制代碼
舉幾個簡單的應(yīng)用案例:
  • 每天 02:00 執(zhí)行任務(wù)
0 2 * * * command復(fù)制代碼
  • 每天 5:00和17:00執(zhí)行任務(wù)
0 5,17 * * * command復(fù)制代碼
  • 每 10min 執(zhí)行一次任務(wù)
*/10 * * * * command復(fù)制代碼
  • 在特定的某幾個月的周日 17:00 執(zhí)行任務(wù)
0 17 * jan,may,aug sun command復(fù)制代碼

差不多常用的就這些,更多的使用案例還可以參考這個鏈接:http://linux.51yip.com/search/crontab

上面案例中的command 表示你具體需要執(zhí)行的任務(wù),例如打印一段話:

echo "Hello xiaoyi" >> /tmp/test.txt 
復(fù)制代碼

或者將這段話輸出到txt中:

echo "Hello xiaoyi" >> /tmp/test.txt 
復(fù)制代碼

或者是你需要執(zhí)行一個Python腳本:

python demo.py filepath復(fù)制代碼

后面的filepath表示輸入的參數(shù)args,這個可能有的同學(xué)會用到,例如下面的案例中需要輸入文件下載路徑。

5. 實戰(zhàn)

上面的都搞清楚了,就可以開始今天的重頭戲了。

首先我們需要每天從ftp服務(wù)器中下載新的任務(wù)數(shù)據(jù),將數(shù)據(jù)下載到本地后通過Python進行數(shù)據(jù)匯總統(tǒng)計,最后將結(jié)果存入數(shù)據(jù)庫中,如果期間某個環(huán)節(jié)出現(xiàn)問題則發(fā)送告警郵件。

① Python腳本

首先需要Python腳本完成以下功能:

  • 從數(shù)據(jù)庫中獲取新數(shù)據(jù)日期
  • 從ftp中下載新數(shù)據(jù)到本地
  • 對本地新數(shù)據(jù)進行匯總統(tǒng)計
  • 統(tǒng)計結(jié)果存入數(shù)據(jù)庫匯總
  • 郵件通知

上面這個流程大致的偽代碼是這樣的:

if __name__ == '__main__':    """獲取新數(shù)據(jù)日期"""
    latest_date = get_max_date()    # 以新日期為名創(chuàng)建文件夾
    download_dir = os.path.join(sys.argv[1], latest_date)    if not os.path.exists(download_dir):
        os.makedirs(download_dir)        
    """從ftp中下載新數(shù)據(jù)"""
    download_file(latest_date, download_dir)    """處理新數(shù)據(jù)并保存"""
    process_data(latest_date, download_dir)復(fù)制代碼

郵件監(jiān)控可以在加一個try catch的異常捕獲,有異常發(fā)生的時候則發(fā)送郵件

Python編輯郵件內(nèi)容并發(fā)送以前也有寫過,可以參考下面這個:Python郵件發(fā)送

②編寫cron任務(wù)

打開crontab,編輯如下內(nèi)容到最后一行,保存并退出

crontab是會自動實時更新任務(wù)列表的,如果不放心也可以通過restart命令重啟cron 服務(wù)【參考文章開頭】

Python定時任務(wù)如何實現(xiàn)自動化

這里有個小建議,所有的路徑都填寫絕對路徑

③ 效果監(jiān)控

如果Python代碼沒有問題,任務(wù)會定時執(zhí)行。

這里建議可以把自己的command單獨在控制臺運行下,沒有問題的時候再寫進到cron任務(wù)列表紅。

最終小一的定時任務(wù)運行截圖如下:

最下面是ftp文件下載,上面是數(shù)據(jù)匯總統(tǒng)計

Python定時任務(wù)如何實現(xiàn)自動化

以上是Python定時任務(wù)如何實現(xiàn)自動化的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章題目:Python定時任務(wù)如何實現(xiàn)自動化-創(chuàng)新互聯(lián)
URL分享:http://jinyejixie.com/article36/cshpsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)站營銷、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
无极县| 梁河县| 镇康县| 敖汉旗| 昌图县| 建始县| 邯郸市| 阿拉善左旗| 长武县| 阿拉尔市| 曲阜市| 乃东县| 南投县| 玉树县| 西和县| 阳春市| 五莲县| 西盟| 柞水县| 梁山县| 大城县| 吴忠市| 临朐县| 武威市| 蓬莱市| 宜君县| 株洲市| 综艺| 清远市| 高邮市| 翁源县| 遵义县| 石家庄市| 吉首市| 鹤山市| 北海市| 班玛县| 潞西市| 桓台县| 霍山县| 青州市|