如何安装apscheduler模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何安装apscheduler模块相关的知识,希望对你有一定的参考价值。

参考技术A APScheduler整个系统可以说由这五个概念组成:
scheduler:控制器,可以看做整个系统的driver,外部世界通过它来实现任务(Job)的增删改查管理。根据IO模式的不同,aps提供了多种scheduler实现。
job:描述一个任务本身。
jobstore:任务持久化仓库。aps提供了内存、redis、mongodb、sqlalchemy几种store
executor:执行任务的模块。根据不同的IO模型有多种executor选择。
trigger:描述一个任务何时被触发,有按日期、按时间间隔、按cronjob描述式三种触发方式
这样的划分充分发挥了设计中抽象的威力,我们下面对每个模块进行描述本回答被提问者采纳

APScheduler定时任务使用

python之APScheduler模块使用

  • 介绍
  • 主要模块
  • 使用

介绍

需要使用定时任务, 简单的可以使用cron模块完成, 考虑到window及linux的通用性, 使用APScheduler模块实现

  • 文档地址
  • windows和linux下都能使用
  • 解决几种类型的定时任务
    • 一次性延时运行: 在设定的时间点运行一次任务
    • 循环定时运行: cron型的定时运行,可指定开始和结束时间
    • 基于间隔的执行: 以一定间隔运行作业,可指定开始和结束时间

主要模块

  • 触发器[triggers]
  • 作业店[job stores]
  • 执行者[executors]
  • 调度器[schedulers]

使用

  • 安装

    pip install apscheduler

  • 创建调度器

    from datetime import datetime
    import json
    
    from apscheduler.schedulers.background import BackgroundScheduler
    from apscheduler.jobstores.mongodb import MongoDBJobStore
    from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
    from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor  
    from apscheduler.jobstores.redis import RedisJobStore  
    import redis
    import pickle  
    connect_args = {
        ‘host‘ :‘127.0.0.1‘,
        ‘port‘: 6379,
        ‘password‘:‘123456‘
    }
    jobstores = {
        ‘default‘: RedisJobStore(db=14,
                            jobs_key=‘apscheduler.jobs‘,
                            run_times_key=‘apscheduler.run_times‘,
                            pickle_protocol=pickle.HIGHEST_PROTOCOL,
                            **connect_args)
    }  
    executors = {
        ‘default‘: ThreadPoolExecutor(20),
        ‘processpool‘: ProcessPoolExecutor(5)
    }
    job_defaults = {
        ‘coalesce‘: False,
        ‘max_instances‘: 3
    }  
    scheduler = BackgroundScheduler(jobstores=jobstores, executors=executors,  job_defaults=job_defaults, timezone="Asia/Shanghai")
    scheduler.start()
    
  • 创建触发函数,添加到调度器

    def my_func():
        """
        定时任务的测试函数
        """
        print(‘我正在执行定时任务!‘)
    
    
    job = scheduler.add_job(my_func, ‘interval‘, minutes=1, id=‘my_job_id‘)
    
  • 任务可以,获取列表,暂停,修改(更新),建议使用时设定id

以上是关于如何安装apscheduler模块的主要内容,如果未能解决你的问题,请参考以下文章

Python任务调度模块APScheduler

Flask 学习-86.Flask-APScheduler 创建定时任务

Django框架中使用定时任务APScheduler

APScheduler学习

python中APScheduler的使用详解(python3经典编程案例)

python中APScheduler的使用详解(python3经典编程案例)