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的数据
