怎么在python中設(shè)置定時任務(wù)?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
武義網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。成都創(chuàng)新互聯(lián)成立與2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
python的數(shù)據(jù)類型:1. 數(shù)字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數(shù)據(jù)類型,集合中可以放任何數(shù)據(jù)類型。5. 元組,元組用”()”標(biāo)識,內(nèi)部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復(fù)的數(shù)據(jù)組合。
方法一:使用while true循環(huán)掛起(最容易)
import os import time import sys from datetime import datetime, timedelta def One_Plan(): # 設(shè)置啟動周期 Second_update_time = 24 * 60 * 60 # 當(dāng)前時間 now_Time = datetime.now() # 設(shè)置 任務(wù)啟動時間 plan_Time = now_Time.replace(hour=9, minute=0, second=0, microsecond=0) # 設(shè)置差值,-1 day, 21:48:53.246576,類似于這樣 # time.sleep()需要傳入int,所以下面使用.total_seconds() # 主要用來計算差值,返回int,具體功能可以自行查閱相關(guān)資料 delta = plan_Time - now_Time first_plan_Time = delta.total_seconds() % Second_update_time print("距離第一次執(zhí)行需要睡眠%d秒" % first_plan_Time) return first_plan_Time # while Ture代碼塊,掛起程序,睡眠時間結(jié)束后調(diào)用函數(shù)名進(jìn)行執(zhí)行 while True: s1 = One_Plan() time.sleep(s1) # 下面這里是自己定義的函數(shù),想跑代碼的可以換成hellow world函數(shù)或者注釋掉這行測試下 exe_file(D_list) print("正在執(zhí)行首次更新程序")
注意:一天執(zhí)行多個任務(wù)并且一天需要執(zhí)行多次。
如果爬蟲程序需要在晚上12點和早上6點、9點,下午3點執(zhí)行四次,并且需要同時執(zhí)行4個爬蟲,還需要考慮到網(wǎng)絡(luò)是否穩(wěn)定,如果程序掛掉該怎么處理等等因素。
方法二:Timer模塊(最簡單的定時啟動)
from datetime import datetime from threading import Timer import time # 定時任務(wù) def task(): print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) def timedTask(): ''' 第一個參數(shù): 延遲多長時間執(zhí)行任務(wù)(秒) 第二個參數(shù): 要執(zhí)行的函數(shù) 第三個參數(shù): 調(diào)用函數(shù)的參數(shù)(tuple) ''' Timer(5, task, ()).start() while True: timedTask() time.sleep(5)
方法三:sched模塊
import schedule import time def hellow(): print('hellow') def Timer(): schedule.every().day.at("09:00").do(hellow) schedule.every().day.at("18:00").do(hellow) while True: schedule.run_pending() time.sleep('需要睡眠的周期') Timer()
看完上述內(nèi)容,你們掌握怎么在python中設(shè)置定時任務(wù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!