千家信息网

python中怎么使用apscheduler实现定时任务

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这期内容当中小编将会给大家带来有关python中怎么使用apscheduler实现定时任务,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一看就会的超详细教程:Spr
千家信息网最后更新 2025年12月03日python中怎么使用apscheduler实现定时任务

这期内容当中小编将会给大家带来有关python中怎么使用apscheduler实现定时任务,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一看就会的超详细教程:SpringBoot整合MybatisPlus!>>>

$ pip install apscheduler

2、源码安装(https://pypi.python.org/pypi/APScheduler/)

$ python setup.py install

APScheduler有四种组成部分:

触发器(trigger)包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行。除了他们自己初始配置意外,触发器完全是无状态的。

作业存储(job store)存储被调度的作业,默认的作业存储是简单地把作业保存在内存中,其他的作业存储是将作业保存在数据库中。一个作业的数据讲在保存在持久化作业存储时被序列化,并在加载时被反序列化。调度器不能分享同一个作业存储。

执行器(executor)处理作业的运行,他们通常通过在作业中提交制定的可调用对象到一个线程或者进城池来进行。当作业完成时,执行器将会通知调度器。

调度器(scheduler)是其他的组成部分。你通常在应用只有一个调度器,应用的开发者通常不会直接处理作业存储、调度器和触发器,相反,调度器提供了处理这些的合适的接口。配置作业存储和执行器可以在调度器中完成,例如添加、修改和移除作业。

简单应用:

import timefrom apscheduler.schedulers.blocking import BlockingScheduler def my_job():    print time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) sched = BlockingScheduler()sched.add_job(my_job, 'interval', seconds=5)sched.start()

上面的例子表示每隔5s执行一次my_job函数,输出当前时间信息

操作作业

1.添加作业
上面是通过add_job()来添加作业,另外还有一种方式是通过scheduled_job()修饰器来修饰函数

'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''import timefrom apscheduler.schedulers.blocking import BlockingScheduler sched = BlockingScheduler() @sched.scheduled_job('interval', seconds=5)def my_job():    print time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())) sched.start()

2.移除作业

job = scheduler.add_job(myfunc, 'interval', minutes=2)job.remove()#如果有多个任务序列的话可以给每个任务设置ID号,可以根据ID号选择清除对象,且remove放到start前才有效sched.add_job(myfunc, 'interval', minutes=2, id='my_job_id')sched.remove_job('my_job_id')

3.暂停和恢复作业

暂停作业:

apsched.job.Job.pause()apsched.schedulers.base.BaseScheduler.pause_job()

恢复作业:

apsched.job.Job.resume()apsched.schedulers.base.BaseScheduler.resume_job()

4.获得job列表
获得调度作业的列表,可以使用get_jobs()来完成,它会返回所有的job实例。或者使用print_jobs()来输出所有格式化的作业列表。也可以利用get_job(任务ID)获取指定任务的作业列表

'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''job = sched.add_job(my_job, 'interval', seconds=2 ,id='123')print sched.get_job(job_id='123')print sched.get_jobs()

5.关闭调度器
默认情况下调度器会等待所有正在运行的作业完成后,关闭所有的调度器和作业存储。如果你不想等待,可以将wait选项设置为False。

sched.shutdown()sched.shutdown(wait=False)

作业运行的控制(trigger)

add_job的第二个参数是trigger,它管理着作业的调度方式。它可以为date, interval或者cron。对于不同的trigger,对应的参数也相同。

(1). cron定时调度(某一定时时刻执行)

(int|str) 表示参数既可以是int类型,也可以是str类型(datetime | str) 表示参数既可以是datetime类型,也可以是str类型 year (int|str) - 4-digit year -(表示四位数的年份,如2008年)month (int|str) - month (1-12) -(表示取值范围为1-12月)day (int|str) - day of the (1-31) -(表示取值范围为1-31日)week (int|str) - ISO week (1-53) -(格里历2006年12月31日可以写成2006年-W52-7(扩展形式)或2006W527(紧凑形式))day_of_week (int|str) - number or name of weekday (0-6 or mon,tue,wed,thu,fri,sat,sun) - (表示一周中的第几天,既可以用0-6表示也可以用其英语缩写表示)hour (int|str) - hour (0-23) - (表示取值范围为0-23时)minute (int|str) - minute (0-59) - (表示取值范围为0-59分)second (int|str) - second (0-59) - (表示取值范围为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) -(表示时区取值)

上述就是小编为大家分享的python中怎么使用apscheduler实现定时任务了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

作业 调度 存储 任务 范围 参数 类型 触发器 学习 运行 序列 教程 时间 执行器 处理 应用 不错 志同道合 互帮 互帮互助 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 山东志愿填报参考系统数据库 网络安全技能大师工作室 网络网络安全实例 数控技术 网络技术 新建一个orcl数据库 四川办公系统软件开发哪家可靠 迅雷网络技术有限公司在哪 软件开发成本怎么算的 数据库与信息系统的区别 做软件开发集成显卡行不行 ecm数据库官网 手机软件开发教学视频 售后管理软件开发 国际期刊统一数据库 战争雷霆玩哪个服务器好 打卡机上传数据库 安全加密软件开发 达梦数据库基于什么 好房互联网科技有限公司 鲲鹏服务器适合大数据的应用场景 济南博赛网络技术公司月薪 以网络安全为题目的论文 珠海蓝狐网络技术有限公司 服务器租什么好 亨通 网络技术研究院 php删除数据库表格数据 杭州幻游网络技术有限公司主页 无线网络技术导论第八章 如何用自己的电脑做服务器搭建网 步科触摸屏网连接SQL数据库
0