python的schedule定時(shí)任務(wù)模塊二次封裝方法
通過(guò)定時(shí)來(lái)執(zhí)行任務(wù),我們?nèi)粘9ぷ魃钪袝?huì)經(jīng)常用到。python有schedule這個(gè)庫(kù),簡(jiǎn)單好用,比如,可以每秒,每分,每小時(shí),每天,每天的某個(gè)時(shí)間點(diǎn),間隔天數(shù)的某個(gè)時(shí)間點(diǎn)定時(shí)執(zhí)行,另外自己又寫了一個(gè)可以自定義時(shí)間點(diǎn)來(lái)定時(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)類型解釋型語(yǔ)言原理解析
Python接入MySQL實(shí)現(xiàn)增刪改查的實(shí)戰(zhàn)記錄

