apscheduler(定時任務) 基於redis持久化配置操作
-
安裝模塊
pip install apscheduler
-
導入模塊配置
## 配置redis模塊 from apscheduler.jobstores.redis import RedisJobStore ## 配置線程 from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor ## 創建定時任務的包 from apscheduler.schedulers.background import BackgroundScheduler
-
配置
## 其中 REDIS 這個是redis的配置信息 REDIS = { 'host': '127.0.0.1', 'port': '6379', 'db': 0, 'password': '' } jobstores = { 'redis': RedisJobStore(**REDIS) } executors = { 'default': ThreadPoolExecutor(10),#默認線程數 'processpool': ProcessPoolExecutor(3)#默認進程 }
-
初始化方法
sched_1 = BackgroundScheduler(jobstores=jobstores, executors=executors) ### 將配置信息放在里邊
-
然后調用方法
job = sched_1.add_job(func=func, trigger='date', jobstore='redis', run_date="%Y-%m-%d %H:%M:%S", args=(notice, )) ## 其中的func指的是定時任務需要的方法名稱, ## trigger 根據時間觸發 默認值為 date ## jobstore 持久化的方式 如果要持久化必須寫, 不寫的話就會默認將定時任務保存在內存中,當項目重啟之后就會失效 ## run_date 執行的時間 執行需要的時間 ## args 執行方法的參數 sched.start() 這樣我們的定時任務就啟動了
注意: 我這邊在寫func的時候用的是單獨的函數,但是我在使用同一個類下的方法的時候會報一個找不到的錯誤
-
下圖就是我們定時任務保存在redis的數據
