您好,登錄后才能下訂單哦!
怎么在python中設(shè)置定時(shí)任務(wù)?相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
python的數(shù)據(jù)類型:1. 數(shù)字類型,包括int(整型)、long(長整型)和float(浮點(diǎn)型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運(yùn)算,有兩個(gè)值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數(shù)據(jù)類型,集合中可以放任何數(shù)據(jù)類型。5. 元組,元組用”()”標(biāo)識(shí),內(nèi)部元素用逗號(hào)隔開。6. 字典,字典是一種鍵值對(duì)的集合。7. 集合,集合是一個(gè)無序的、不重復(fù)的數(shù)據(jù)組合。
方法一:使用while true循環(huán)掛起(最容易)
import os import time import sys from datetime import datetime, timedelta def One_Plan(): # 設(shè)置啟動(dòng)周期 Second_update_time = 24 * 60 * 60 # 當(dāng)前時(shí)間 now_Time = datetime.now() # 設(shè)置 任務(wù)啟動(dòng)時(shí)間 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() # 主要用來計(jì)算差值,返回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代碼塊,掛起程序,睡眠時(shí)間結(jié)束后調(diào)用函數(shù)名進(jìn)行執(zhí)行 while True: s1 = One_Plan() time.sleep(s1) # 下面這里是自己定義的函數(shù),想跑代碼的可以換成hellow world函數(shù)或者注釋掉這行測(cè)試下 exe_file(D_list) print("正在執(zhí)行首次更新程序")
注意:一天執(zhí)行多個(gè)任務(wù)并且一天需要執(zhí)行多次。
如果爬蟲程序需要在晚上12點(diǎn)和早上6點(diǎn)、9點(diǎn),下午3點(diǎn)執(zhí)行四次,并且需要同時(shí)執(zhí)行4個(gè)爬蟲,還需要考慮到網(wǎng)絡(luò)是否穩(wěn)定,如果程序掛掉該怎么處理等等因素。
方法二:Timer模塊(最簡(jiǎn)單的定時(shí)啟動(dòng))
from datetime import datetime from threading import Timer import time # 定時(shí)任務(wù) def task(): print(datetime.now().strftime("%Y-%m-%d %H:%M:%S")) def timedTask(): ''' 第一個(gè)參數(shù): 延遲多長時(shí)間執(zhí)行任務(wù)(秒) 第二個(gè)參數(shù): 要執(zhí)行的函數(shù) 第三個(gè)參數(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è)置定時(shí)任務(wù)的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。