Python定時器怎麼使用

王林
發布: 2023-05-12 16:43:10
轉載
1469 人瀏覽過

這裡我們開發一個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中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!