這裡我們開發一個print_datetime函數來列印目前的時間,同時也將print_time函數當作我們需要一直保持執行的任務。
# 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'))
然後,我們準備需要使用的定時任務模組apscheduler,可以選擇pip的方式來安裝,我個人一直使用的是這樣方式。
pip install apscheduler # Importing the BlockingScheduler class from the apscheduler.schedulers.blocking module. from apscheduler.schedulers.blocking import BlockingScheduler
至此,我們便可以將需要保持一直處於執行狀態的業務函數,也就是這裡的print_datetime函數作為定時中的任務執行。
如此,我們就不用使用while True死循環 sleep的方式來讓任務一直保存在運行形狀了。
# Creating a scheduler object. scheduler = BlockingScheduler() # Adding a job to the scheduler. scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='cron', second='*/1') # 每秒执行 # Starting the scheduler in a separate thread. scheduler.start()
最後,直接啟動目前的.py檔就能直接執行定時任務了,運行效果如下。
時間列印定時任務 2023-02-26 13:52:52
時間列印定時任務 2023-02-26 13:52:53
時間列印定時任務 2023-02 -26 13:52:54
時間列印定時任務 2023-02-26 13:52:55
時間列印定時任務 2023-02-26 13:52:56
#時間列印定時任務 2023- 02-26 13:52:57
當然,作為定時任務的架構apscheduler,他還有很多的技能。例如:按更複雜的周期執行,在有限的時間內執行,單點執行等等。
以下是我列出的比較常見的apscheduler定時任務的執行方式,供小夥伴們參考,提出寶貴意見。
scheduler.add_job(func=print_time, args=('任务只执行一次,在下一次的时间执行',), next_run_time=datetime.datetime.now() + datetime.timedelta(seconds=60)) scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='interval', seconds=5) # 每5秒执行一次 scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='interval', minutes=2) # 每2分钟执行一次 scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='interval', hours=1) # 每1小时执行一次 scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='cron', minute='*', second='1') # 每分钟执行一次 scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='cron', hour='*', minute='0', second='0') # 每小时执行一次 scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='cron', hour='20', minute='0', second='0') # 每天20:00执行一次 scheduler.add_job(func=print_time, args=('时间打印定时任务',), trigger='cron', hour='21') # 每天21:00执行一次
以上是Python定時器怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!