python APScheduler定時任務排程

2021-10-07 17:41:32 字數 2218 閱讀 1396

apscheduler的安裝

pip install apscheduler

apscheduler是乙個python的第三方庫,用來提供python的定時任務排程。包含四個元件,分別是:

triggers: 任務觸發器元件,提供任務觸發方式

job stores: 任務儲存元件,提供任務儲存方式

executors: 任務執行元件,提供任務排程方式

schedulers: 任務排程元件,提供任務工作方式

根據實際的應用場景,選擇合適的排程程式,比如:

blockingscheduler:當排程程式是您的流程中唯一執行的東西時使用

backgroundscheduler:在不使用以下任何框架,並且希望排程程式在應用程式內部的後台執行時使用

asyncioscheduler:如果您的應用程式使用asyncio模組,則使用

geventscheduler:如果您的應用程式使用gevent,則使用

tornadoscheduler:在構建tornado應用程式時使用

twistedscheduler:在構建twisted應用程式時使用

qtscheduler:在構建qt應用程式時使用

apscheduler帶有三種內建的觸發器型別:

date:在您希望在特定時間僅執行一次作業時使用 (引數:run_date)

interval:當您要以固定的時間間隔執行作業時使用(引數:weeks=0 | days=0 | hours=0 | minutes=0 | seconds=0, start_date=none, end_date=none, timezone=none)

cron:當您想在一天的特定時間定期執行作業時使用 (linux下crontab的方式,引數:year=none, month=none, day=none, week=none, day_of_week=none, hour=none, minute=none, second=none, start_date=none, end_date=none, timezone=none)

更為詳細的文件說明,請檢視:

示例:

import datetime

import logging

import time

from apscheduler.schedulers.background import backgroundscheduler

from apscheduler.schedulers.blocking import blockingscheduler

scheduler = backgroundscheduler(

)# 後台執行

# scheduler1 = blockingscheduler() # 單程序執行

defmy_job()

:print

(datetime.datetime.now(

).strftime(

"%y-%m-%d %h:%m:%s"))

if __name__ ==

'__main__'

: scheduler.add_job(func=my_job, trigger=

"interval"

, minutes=1)

scheduler.start(

) logging.basicconfig(level=logging.debug,

format

='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s'

, datefmt=

'%y-%m-%d %h:%m:%s'

, filename=

'log.txt'

, filemode=

'a')

logging.getlogger(

"apscheduler"

)while

true

: time.sleep(60)

print

("1 分鐘"

)

執行後的結果:

同時還生成乙個日誌記錄檔案 log.txt

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...

at定時任務

at的守護程序每60秒檢查一次作業佇列,有作業時檢查作業,時間恰好達到,則執行作業。前提 保證atd程序已經啟動,檢查atd程序是否啟動 ps ef grep atd。atd的命令格式 at 選項 時間 ctrl d 結束at命令的輸入。選項 m 任務完成後給使用者傳送郵件,沒有標準輸出。i atg...

at定時任務

1 at是只執行一次,執行完後任務刪除。at的守護程序atd會以後臺模式執行,檢查作業佇列來執行。2 預設 atd每60秒巡邏一次,有作業時候,檢查作業時間,如果和當前時間一樣,就執行任務 3 在使用at命令的時候,一定要保證他的守護者atd程序的啟動。用ps ef grep atd來檢視atd是否...