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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM