前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python APScheduler基本使用

python APScheduler基本使用

作者头像
一朵灼灼华
发布于 2022-08-05 10:34:29
发布于 2022-08-05 10:34:29
51600
代码可运行
举报
运行总次数:0
代码可运行

APScheduler库基础学习

在用的apscheduler库

pip install apscheduler==2.1.2 

依赖:six,tzlocal等

最新的库

https://pypi.python.org/simple/apscheduler/

在django 的urls.py下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#定时任务
from apscheduler.scheduler import Scheduler #调用2.1.2版本的库,最新的已舍去 
  

sched = Scheduler()  
 
@sched.interval_schedule(seconds=1) #时间调度任务,间隔1秒
def mytask():
    print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# checkUserFiles()

@sched.cron_schedule(second='50', day_of_week='*', hour='13',minute='1')#d定时任务
#year:年month:月day:日week:星期day_of_week:我不知道啊hour:时minute:分second:秒
def djangotask():
    print('定时任务开始')
    
调度开始
#sched.start(paused=True)
sched.start()

APScheduler组成组件

  • Triggers 触发器,有自己的任务调度逻辑,每一个job单位都有触发器决定下一次何时运行。除了初始化的配置,他没有状态。
  • Job stores 储存调度任务,默认job对象,是储存在内存中,也可以用其他job对象把他们储存在各种数据库中;job保存到持久化仓库时,job数据要进行序列化,当加载job时也要进行反序列化。Job不能共享调度器。
  • Executors 是job运行的处理器,通常通过提交指定调用的job到进程或者线程池处理;当job完成后,通知发出一个适当的事件调度程序。
  • Schedulers 通常一个应用只有一个调度器,schdeuler开发者不直接处理jobs stores、Executors、Triggers, 相反,调度程序提供适当的接口来处理这些;配置job stores和executors通过调度器来完成,如增加,删除和修改。

APScheduler常用调度器

  • BlockingScheduler: 当应用程序中只有调度器时使用。
  • BackgroundScheduler: 不使用任何以下框架(asyncio、gevent、Tornado、Twisted、Qt),并且需要在你的应用程序后台运行调度程序
  • AsyncIOScheduler: 应用程序使用asyncio模块时使用
  • GeventScheduler: 应用程序使用gevent模块时使用
  • TornadoScheduler: Tornado应用程序时使用
  • TwistedScheduler: Twisted应用程序使用
  • QtScheduler: Qt应用程序时使用

APScheduler触发器

  • DateTrigger——日期触发器 添加此类触发器job之后,只运行一次,可以指定运行时间;若不指定则默认为当前时间。 正常使用时,使用add_job,不指定trigger类型,默认就是DateTrigger 指定trigger类型,可以使用字符串date,或者直接使用类DateTrigger的实例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 示例代码
    from apscheduler.triggers.date import DateTrigger    # 使用字符串方式1
    scheduler.add_job(date_tick)    # 使用字符串方式2
    scheduler.add_job(date_tick, 'date')    # 使用DateTrigger指定时间运行: 
    date = DateTrigger(datetime.now()+dt.timedelta(seconds=120))   
    scheduler.add_job(date_tick, date)123456789
  • IntervalTrigger——间隔触发器 此触发器,可以指定开始时间start_date,结束时间end_date,以及间隔时间, 间隔时间可以有weeks/days/hours/minutes/seconds组成, 开始时间之后,每隔多少interval执行一次任务,直至结束时间,如果不指定结束时间,则一直执行 指定此类触发器类型,可以使用字符串interval,也可以使用类IntervalTrigger的实例对象
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 示例代码
    from apscheduler.triggers.interval import IngervalTrigger    # 使用字符串方式
    scheduler.add_job(interval_tick,'interval',seconds=4,minutes=2,
                     start_date=datetime.now()+dt.timedelta(seconds=120),
                     end_date=datetime.now()+dt.timedelta(seconds=360))    # 使用IntervalTrigger指定时间运行
    trigger = IntervalTrigger(seconds=60, 
                              start_date=datetime.now()+dt.timedelta(seconds=60),
                              end_date=datetime.now() + dt.timedelta(seconds=120))
    scheduler.add_job(date_tick, trigger)1234567891011
  • CronTrigger——Cron触发器Unix系统中的Cron中,可以任意配置指定,年月日时分秒,周,每周几定时处理任务 由表达式(Expression)和字段(Field)组成,可以根据每个字段的表达式获取执行值,由调度器获取具体的执行日期 year’: ‘‘, ‘month’: 1, ‘day’: 1, ‘week’: ‘‘, ‘day_of_week’: ‘*’, ‘hour’: 0, ‘minute’: 0, ‘second’: 0
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
指定具体值,或者每分钟,或者每几分钟,或者每周几等当时    year (int|str)4-digit year
    month (int|str)month (1-12)    day (int|str) – day of the (1-31)
    week (int|str)ISO week (1-53)
    day_of_week (int|str) – number or name of weekday (0-6 or mon,tue,wed,thu,fri,sat,sun)    hour (int|str)hour (0-23)    minute (int|str)minute (0-59)    second (int|str)second (0-59)
    start_date (datetime|str) – earliest possible date/time to trigger on (inclusive)
    end_date (datetime|str) – latest possible date/time to trigger on (inclusive)
    timezone (datetime.tzinfo|str) – time zone to use for the date/time calculations (defaults to scheduler timezone)123456789101112

Expression

Field

Description

*

any

Fire on every value

*/a

any

Fire every a values, starting from the minimum

a-b

any

Fire on any value within the a-b range (a must be smaller than b)

a-b/c

any

Fire every c values within the a-b range

xth y

day

Fire on the x-th occurrence of weekday y within the month

last x

day

Fire on the last occurrence of weekday x within the month

last

day

Fire on the last day within the month

x,y,z

any

Fire on any matching expression; can combine any number of any of the above expressions

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python定时任务框架之Apscheduler 案例分享
  前面已经讲过Celery做定时任务的场景,现在分享另一个框架Apscheduler。Apscheduler的全称是Advanced Python Scheduler。它是一个轻量级的 Python 定时任务调度框架。同时,它还支持异步执行、后台执行调度任务。本人小小的建议是一般项目用APScheduler,因为不用像Celery那样再单独启动worker、beat进程,而且API也很简洁。
全栈测试开发日记
2023/02/02
1.8K0
Python定时任务框架之Apscheduler 案例分享
python定时任务最强框架APScheduler详细教程
上次测试女神听了我的建议,已经做好了要给项目添加定时任务的决定了。但是之前提供的四种方式中,她不知道具体选择哪一个。为了和女神更近一步,我把我入行近10年收藏的干货免费拿出来分享给女神,希望女神凌晨2点再找我的时候,不再是因为要给他调程序了。
无涯WuYa
2020/07/15
8.3K0
python定时任务最强框架APScheduler详细教程
Python任务调度模块 – APScheduler,Flask-APScheduler实现定时任务
  看代码,定义一个函数,然后定义一个scheduler类型,添加一个job,然后执行,就可以了,代码是不是超级简单,而且非常清晰。看看结果吧。
用户1214487
2018/07/31
4.8K0
Python任务调度模块 – APScheduler,Flask-APScheduler实现定时任务
Python基于APScheduler实现定时任务
Python这个语言的优势就在于有丰富的第三方库,既然原生实现有这样那样的缺点,我们可以借助第三方库来实现定时任务。
Steve Wang
2021/12/20
2.6K0
Python任务调度模块APSched
官网文档:http://apscheduler.readthedoc... API:http://apscheduler.readthedoc...
py3study
2020/01/06
1.1K0
python定时模块:apscheduler
其中 BlockingScheduler是阻塞性的调度器,是最基本的调度器,下面调用 start方法就会阻塞当前进程,所以如果你的程序除了调度进程没有其他后台进程,那么是可以是否的,否则这个调度器会阻塞你程序的正常执行。
悟乙己
2021/12/07
9340
python定时模块:apscheduler
Python 定时任务的实现方式
目前所在的项目组需要经常执行一些定时任务,之前都是用 Node.JS 的 cron来实现 schedule job。可是这次需要连接不同的 DB,而且实现的逻辑也有些许不同,于是选择使用 Python 的定时器。
李振
2021/11/26
1.6K0
Python 定时任务的实现方式
Flask 学习-86.Flask-APScheduler 创建定时任务
Flask-APScheduler是根据APScheduler编写的一个flask模块,它提供了API管理任务。
上海-悠悠
2023/01/03
2.2K0
python定时任务:apscheduler的使用
APScheduler基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务。基于这些功能,我们可以很方便的实现一个python定时任务系统。
KEVINGUO_CN
2020/03/17
1.3K0
Python实现定时任务的几种方法
该方法能够执行固定间隔时间的任务,时间间隔由time.sleep()的睡眠时间指定。
Steve Wang
2021/12/20
3.9K0
【Python】APScheduler简介
APScheduler,全称是_Advanced Python Scheduler_,具体的介绍可以看PyPI或者readthedocs的文档介绍,这篇 blog 主要是翻译User Guide一节的主要内容,不过惯例还是先简单介绍一下这个库特别的地方。
用户5522200
2020/05/11
2.8K0
Python定时任务
1、第一种办法是最简单又最暴力。那就是在一个死循环中,使用线程睡眠函数 sleep()。
周小董
2019/03/25
5.8K0
Python定时任务
Apscheduler时间调度程序——python定时任务
APScheduler的全称是Advanced Python Scheduler。它是一个轻量级的 Python 定时任务调度框架。APScheduler 支持三种调度任务:固定时间间隔,固定时间点(日期),Linux 下的 Crontab 命令。同时,它还支持异步执行、后台执行调度任务。
SingYi
2022/07/14
1.2K0
太好用了!Python 定时任务调度框架 APScheduler 详解!
我们在工作过程中,可能会遇到有定时任务的需求。大部分定时任务偏向 数据采集、消息提醒、邮件自动发送、数据指标统计 等场景。
Python兴趣圈
2023/12/11
7.1K0
太好用了!Python 定时任务调度框架 APScheduler 详解!
Python中定时任务框架APScheduler入门
如果对Python的环境搭建及模块安装还不熟悉,可以看看我写的另一篇博客 Python环境搭建及模块安装 。
Qwe7
2022/03/17
9700
Python 实现定时任务的八种方案!
来源:https://www.biaodianfu.com/python-schedule.html
Python编程与实战
2021/10/12
34.3K0
轻量级python定时器apscheduler
cron也有缺点: 1、不适合复杂的定时任务 2、定时任务修改,需要重启crontab管理 3、定时任务,没有状态存储,也不是知道是否执行了
测试加
2022/04/27
1.1K0
轻量级python定时器apscheduler
python 轻量级定时框架apscheduler,周中定时给自己发送邮件。
【干货】APScheduler官方文档翻译: https://www.jianshu.com/p/4f5305e220f0
forxtz
2020/10/10
9270
Python 调度相关包的使用
Job store:如果任务调度信息存在内存中,当程序退出后会丢失,可以其他存储器进行持久化存储
dandelion1990
2024/03/09
1640
python apscheduler interval/cron触发器详解 常用
interval 触发器 参数 说明 weeks (int) 间隔几周 days (int) 间隔几天 hours (int) 间隔几小时 minutes (int) 间隔几分钟 seconds (int) 间隔多少秒 start_date (datetime 或 str) 开始日期 end_date (datetime 或 str) 结束日期 timezone (datetime.tzinfo 或str) 时区
用户5760343
2019/07/05
5.8K0
相关推荐
Python定时任务框架之Apscheduler 案例分享
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验