Python定時(shí)任務(wù)并不難,有很多庫可以幫助你輕松地實(shí)現(xiàn)定時(shí)任務(wù)。以下是一些常用的庫:
schedule
:這是一個(gè)簡單易用的庫,可以用來創(chuàng)建定時(shí)任務(wù)。它的基本用法如下:import schedule
import time
def job():
print("I'm working...")
# 每隔10秒執(zhí)行一次job函數(shù)
schedule.every(10).seconds.do(job)
while True:
schedule.run_pending()
time.sleep(1)
APScheduler
:這是一個(gè)功能強(qiáng)大的庫,支持多種觸發(fā)器(如固定間隔、固定時(shí)間、cron表達(dá)式等)和多種任務(wù)存儲(chǔ)方式(如內(nèi)存、數(shù)據(jù)庫等)。以下是一個(gè)簡單的示例:from apscheduler.schedulers.blocking import BlockingScheduler
def job():
print("I'm working...")
scheduler = BlockingScheduler()
# 每隔10秒執(zhí)行一次job函數(shù)
scheduler.add_job(job, 'interval', seconds=10)
scheduler.start()
Celery
:這是一個(gè)分布式任務(wù)隊(duì)列,可以用來處理大量的定時(shí)任務(wù)和后臺(tái)任務(wù)。雖然它比上述兩個(gè)庫更復(fù)雜,但它提供了更多的功能和更好的可擴(kuò)展性。以下是一個(gè)簡單的示例:from celery import Celery
from datetime import timedelta
app = Celery('tasks', broker='pyamqp://guest@localhost//')
@app.task
def job():
print("I'm working...")
# 每隔10秒執(zhí)行一次job函數(shù)
job.apply_async(args=[], countdown=10)
總之,Python定時(shí)任務(wù)并不難,你可以根據(jù)自己的需求選擇合適的庫來實(shí)現(xiàn)。