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是否...