這里我們開發(fā)一個(gè)print_datetime函數(shù)來打印當(dāng)前的時(shí)間,同時(shí)也將print_time函數(shù)作為我們需要一直保持執(zhí)行的任務(wù)。
# Importing the datetime module. import datetime def print_time(message=None): """ It prints the current time, optionally preceded by a message. :param message: The message to print """ print(message, datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
然后,我們準(zhǔn)備需要使用的定時(shí)任務(wù)模塊apscheduler,可以選擇pip的方式進(jìn)行安裝,我個(gè)人一直使用的是這樣方式。
pip install apscheduler # Importing the BlockingScheduler class from the apscheduler.schedulers.blocking module. from apscheduler.schedulers.blocking import BlockingScheduler
至此,我們便可以將需要保持一直處于執(zhí)行狀態(tài)的業(yè)務(wù)函數(shù),也就是這里的print_datetime函數(shù)作為定時(shí)中的任務(wù)執(zhí)行。
如此,我們就不用使用while True死循環(huán)+sleep的方式來使任務(wù)一直保存在運(yùn)行形狀了。
# Creating a scheduler object. scheduler = BlockingScheduler() # Adding a job to the scheduler. scheduler.add_job(func=print_time, args=('時(shí)間打印定時(shí)任務(wù)',), trigger='cron', second='*/1') # 每秒執(zhí)行 # Starting the scheduler in a separate thread. scheduler.start()
最后,直接啟動當(dāng)前的.py文件就能直接執(zhí)行定時(shí)任務(wù)了,運(yùn)行效果如下。
立即學(xué)習(xí)“Python免費(fèi)學(xué)習(xí)筆記(深入)”;
時(shí)間打印定時(shí)任務(wù)?2023-02-26?13:52:52時(shí)間打印定時(shí)任務(wù)?2023-02-26?13:52:53時(shí)間打印定時(shí)任務(wù)?2023-02-26?13:52:54時(shí)間打印定時(shí)任務(wù)?2023-02-26?13:52:55時(shí)間打印定時(shí)任務(wù)?2023-02-26?13:52:56時(shí)間打印定時(shí)任務(wù)?2023-02-26?13:52:57
當(dāng)然,作為定時(shí)任務(wù)的框架apscheduler,他還有很多的技能。比如:按更復(fù)雜的周期執(zhí)行,在有限的時(shí)間內(nèi)執(zhí)行,單點(diǎn)執(zhí)行等等。
下面是我列出的比較常見的apscheduler定時(shí)任務(wù)的執(zhí)行方式,供小伙伴們參考,提出寶貴意見。
scheduler.add_job(func=print_time, args=('任務(wù)只執(zhí)行一次,在下一次的時(shí)間執(zhí)行',), next_run_time=datetime.datetime.now() + datetime.timedelta(seconds=60)) scheduler.add_job(func=print_time, args=('時(shí)間打印定時(shí)任務(wù)',), trigger='interval', seconds=5) # 每5秒執(zhí)行一次 scheduler.add_job(func=print_time, args=('時(shí)間打印定時(shí)任務(wù)',), trigger='interval', minutes=2) # 每2分鐘執(zhí)行一次 scheduler.add_job(func=print_time, args=('時(shí)間打印定時(shí)任務(wù)',), trigger='interval', hours=1) # 每1小時(shí)執(zhí)行一次 scheduler.add_job(func=print_time, args=('時(shí)間打印定時(shí)任務(wù)',), trigger='cron', minute='*', second='1') # 每分鐘執(zhí)行一次 scheduler.add_job(func=print_time, args=('時(shí)間打印定時(shí)任務(wù)',), trigger='cron', hour='*', minute='0', second='0') # 每小時(shí)執(zhí)行一次 scheduler.add_job(func=print_time, args=('時(shí)間打印定時(shí)任務(wù)',), trigger='cron', hour='20', minute='0', second='0') # 每天20:00執(zhí)行一次 scheduler.add_job(func=print_time, args=('時(shí)間打印定時(shí)任務(wù)',), trigger='cron', hour='21') # 每天21:00執(zhí)行一次
以上就是Python定時(shí)器怎么使用的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
python怎么學(xué)習(xí)?python怎么入門?python在哪學(xué)?python怎么學(xué)才快?不用擔(dān)心,這里為大家提供了python速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號