apscheduler(定时任务) 基于redis持久化配置操作

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

    ![](https://img2020.cnblogs.com/blog/1732284/202101/1732284-20210104140134667-835600623.png)
    
posted @ 2020-11-20 15:52  adrian-boy  阅读(2936)  评论(1编辑  收藏  举报