python的schedule定時(shí)任務(wù)模塊二次封裝方法
通過定時(shí)來執(zhí)行任務(wù),我們?nèi)粘9ぷ魃钪袝?huì)經(jīng)常用到。python有schedule這個(gè)庫,簡(jiǎn)單好用,比如,可以每秒,每分,每小時(shí),每天,每天的某個(gè)時(shí)間點(diǎn),間隔天數(shù)的某個(gè)時(shí)間點(diǎn)定時(shí)執(zhí)行,另外自己又寫了一個(gè)可以自定義時(shí)間點(diǎn)來定時(shí)執(zhí)行任務(wù),代碼如下。
import schedule import time class Timing(): #按秒循環(huán)定時(shí)執(zhí)行任務(wù) def doEverySecond(self,seconds,job_func): try: schedule.every(seconds).seconds.do(job_func) while True: schedule.run_pending() except Exception as e: raise e # 按分鐘循環(huán)定時(shí)執(zhí)行任務(wù) def doEveryMinutes(self,minutes,job_func): try: schedule.every(minutes).minutes.do(job_func) while True: schedule.run_pending() except Exception as e: raise e # 按小時(shí)循環(huán)定時(shí)執(zhí)行任務(wù) def doEveryHours(self,Hours,job_func): try: schedule.every(Hours).minutes.do(job_func) while True: schedule.run_pending() except Exception as e: raise e #按天數(shù)在某個(gè)時(shí)刻定時(shí)執(zhí)行任務(wù) def doEveryDay(self,time,job_func,days=1): try: schedule.every(days).days.at(time).do(job_func) while True: schedule.run_pending() except Exception as e: raise e #設(shè)置在每天的多個(gè)時(shí)刻定時(shí)執(zhí)行任務(wù),這個(gè)方法在實(shí)際工作中比較常用到 def doEveryTime(self,time_str,job_func,days=1): ''' :param time_str: :param job_func: :param days: :return: None example:time_str="10:30","10:45","11:00" ''' try: list_time = time_str.split(",") for time in list_time: schedule.every(days).days.at(time).do(job_func) while True: schedule.run_pending() except Exception as e: raise e #自定義時(shí)間,dateTimes格式為:"2018-06-08 16:55,2018-06-08 16:56" def doJustTime(self,datestr,job_func): try: date_list = datestr.split(",") for i in date_list: #轉(zhuǎn)換為unix時(shí)間戳格式 timeArray = time.strptime(i, "%Y-%m-%d %H:%M") timestamp = time.mktime(timeArray) while True: now_time = round(time.time(),0) if timestamp == now_time: job_func() break else: time.sleep(1) except Exception as e: raise e if __name__ == "__main__": def print1(): print("ok") Timing().doJustTime('2018-06-08 17:53,2018-06-08 17:54',print1)
以上這篇python的schedule定時(shí)任務(wù)模塊二次封裝方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章

利用Python實(shí)現(xiàn)QQ實(shí)時(shí)到賬免簽支付功能

pytorch 實(shí)現(xiàn)在預(yù)訓(xùn)練模型的 input上增減通道

python用700行代碼實(shí)現(xiàn)http客戶端

Python動(dòng)態(tài)強(qiáng)類型解釋型語言原理解析

Python接入MySQL實(shí)現(xiàn)增刪改查的實(shí)戰(zhàn)記錄