首頁 > 軟體

python 包之 APScheduler 定時任務

2022-04-18 22:00:49

一、安裝

pip install apscheduler

二、定時執行一次

  • 新建一個scheduler排程器
  • 新增一個job store排程任務
  • 執行排程任務
import datetime
from apscheduler.schedulers.blocking import BlockingScheduler

def task(name):
print('%s告訴你現在時間是:%s' . format(name, datetime.datetime.now()))

# 該任務將會在2022-05-20 13:14:52執行一次
scheduler = BlockingScheduler()
scheduler.add_job(task, 'date', run_date=datetime.datetime(2022, 5, 20, 13, 14, 52), args=['autofelix'], id='task')
scheduler.start()

三、間隔執行

  • 當你排程作業的時候,你需要為這個作業選擇一個觸發器,用來描述這個作業何時被觸發
  • date 一次性指定日期
  • interval 在某個時間範圍內間隔多長時間執行一次
from apscheduler.schedulers.blocking import BlockingScheduler

def task():
print('我是飛兔小哥')

# 每隔10秒數執行一次
scheduler = BlockingScheduler()
scheduler.add_job(task, 'interval', seconds=10, id='task')
scheduler.start()

四、每日定時執行一次

  • cron 和Linux crontab格式相容,最為強大
from apscheduler.schedulers.blocking import BlockingScheduler

f = open('status.text', 'a', encoding='utf8')
sc = BlockingScheduler()
@sc.scheduled_job('cron', day_of_week='*', hour=1, minute='30', second='50')

if name == '__main__':
try:
sc.start()
f.write('定時任務成功執行')
except Exception as e:
sc.shutdown()
f.write('定時任務執行失敗')
finally:
f.close()

五、每幾分鐘執行一次

  • /2:每隔2分鐘執行一次
  • /1:每隔1分鐘執行一次
from apscheduler.schedulers.blocking import BlockingScheduler

def task():
print('你的任務每隔2分鐘執行一次')

scheduler = BlockingScheduler()
scheduler.add_job(job1, 'cron', minute="/2", id='task')
scheduler.start()

六、每小時執行一次

  • jitter:代表可以上下浮動的秒數
from apscheduler.schedulers.blocking import BlockingScheduler

def task():
print('你的任務每隔1小時執行一次')

scheduler = BlockingScheduler()
scheduler.add_job(task, 'interval', hours=1, id='task')
# scheduler.add_job(task, 'interval', hours=1, id='task', jitter=120)
scheduler.start()

七、排程器分類

  • BlockingScheduler : 當排程器是你應用中唯一要執行的東西時
  • BackgroundScheduler : 當你沒有執行任何其他框架並希望排程器在你應用的後臺執行時使用(充電樁即使用此種方式)
  • AsyncIOScheduler : 當你的程式使用了asyncio(一個非同步框架)的時候使用
  • GeventScheduler : 當你的程式使用了gevent(高效能的Python並行框架)的時候使用
  • TornadoScheduler : 當你的程式基於Tornado(一個web框架)的時候使用
  • TwistedScheduler : 當你的程式使用了Twisted(一個非同步框架)的時候使用
  • QtScheduler : 如果你的應用是一個Qt應用的時候可以使用

到此這篇關於python 包之 APScheduler 定時任務 的文章就介紹到這了,更多相關python APScheduler 內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com