python定时任务调度——apscheduler模块

一、基本概念

APScheduler(Advanced Python Scheduler),基于Quartz的轻量级Python定时任务调度框架


1.1 四个主要组件:

triggerjobstoresexecutorsscheduler

  • executor 任务执行器:执行任务的模块,不同的IO模型选择相适应的executor

  • jobstore 任务存储仓库:持久存储任务

  • trigger 任务触发器:定义任务按何种条件触发

  • scheduler 任务控制器:通过配置executor、jobstore、trigger,使用线程池(ThreadPoolExecutor默认值20)或进程池(ProcessPoolExecutor 默认值5)并且默认最多3个(max_instances)任务实例同时运行,实现对job的增删改查等调度控制


1.2 七种 scheduler

BlockingScheduler、BackgroundScheduler、AsyncIOScheduler、GeventScheduler、TornadoScheduler、TwistedScheduler、QtScheduler


1.3 四种 jobstore

MemoryJobStore、sqlalchemy、MongoDBRedis


1.4 三种 trigger
  • date :固定日期触发器:任务只运行一次,运行完毕自动清除;若错过指定运行时间,任务不会被创建

  • interval: 时间间隔触发器

  • cron : cron风格的任务触发

二、简单使用方式


2.1 内存存储job

这里写图片描述

:命令行输入python apscheduler_test.py启动程序;按CTRL+Break安全退出程序,但任务不会被清除;按CTRL+C退出程序,同时任务会被清除;可根据需要,选择以何种方式退出程序


2.2 sqlalchemy 存储job

这里写图片描述


:命令行输入python apscheduler_test.py启动程序后,会在当前工作目录生成jobs.sqlite数据库文件;sqlalchemy默认使用SQLite存储job,table名默认为apscheduler_jobs;用SQLite Database Browser打开该文件,各任务显示如下:

这里写图片描述


2.3 mongodb 存储job

这里写图片描述

:运行程序前,确保已开启本机mongodb服务;命令行输入python apscheduler_test.py启动程序;


2.4 事件监听器

这里写图片描述

:命令行输入python apscheduler_test.py启动程序后,得到如下反馈:

这里写图片描述


2.5 BackgroundScheduler

这里写图片描述


参考

[1] https://bitbucket.org/agronholm/apscheduler/src
[2] http://apscheduler.readthedocs.org/en/latest/userguide.html#code-examples
[3] http://www.bubuko.com/infodetail-716148.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值