python APScheduler执行定时任务介绍


Posted in Python onApril 19, 2022

一、安装

pip install apscheduler

二、定时执行一次

  • 新建一个scheduler调度器
  • 添加一个job store调度任务
  • 运行调度任务
import datetime
from apscheduler.schedulers.blocking import BlockingScheduler

def task(name):
print('%s告诉你现在时间是:%s' . format(name, datetime.datetime.now()))

# 该任务将会在2022-05-20 13:14:52执行一次
scheduler = BlockingScheduler()
scheduler.add_job(task, 'date', run_date=datetime.datetime(2022, 5, 20, 13, 14, 52), args=['autofelix'], id='task')
scheduler.start()

三、间隔执行

  • 当你调度作业的时候,你需要为这个作业选择一个触发器,用来描述这个作业何时被触发
  • date 一次性指定日期
  • interval 在某个时间范围内间隔多长时间执行一次
from apscheduler.schedulers.blocking import BlockingScheduler

def task():
print('我是飞兔小哥')

# 每隔10秒数执行一次
scheduler = BlockingScheduler()
scheduler.add_job(task, 'interval', seconds=10, id='task')
scheduler.start()

四、每日定时执行一次

  • cron 和Linux crontab格式兼容,最为强大
from apscheduler.schedulers.blocking import BlockingScheduler

f = open('status.text', 'a', encoding='utf8')
sc = BlockingScheduler()
@sc.scheduled_job('cron', day_of_week='*', hour=1, minute='30', second='50')

if name == '__main__':
try:
sc.start()
f.write('定时任务成功执行')
except Exception as e:
sc.shutdown()
f.write('定时任务执行失败')
finally:
f.close()

五、每几分钟执行一次

  • /2:每隔2分钟执行一次
  • /1:每隔1分钟执行一次
from apscheduler.schedulers.blocking import BlockingScheduler

def task():
print('你的任务每隔2分钟执行一次')

scheduler = BlockingScheduler()
scheduler.add_job(job1, 'cron', minute="/2", id='task')
scheduler.start()

六、每小时执行一次

  • jitter:代表可以上下浮动的秒数
from apscheduler.schedulers.blocking import BlockingScheduler

def task():
print('你的任务每隔1小时执行一次')

scheduler = BlockingScheduler()
scheduler.add_job(task, 'interval', hours=1, id='task')
# scheduler.add_job(task, 'interval', hours=1, id='task', jitter=120)
scheduler.start()

七、调度器分类

  • BlockingScheduler : 当调度器是你应用中唯一要运行的东西时
  • BackgroundScheduler : 当你没有运行任何其他框架并希望调度器在你应用的后台执行时使用(充电桩即使用此种方式)
  • AsyncIOScheduler : 当你的程序使用了asyncio(一个异步框架)的时候使用
  • GeventScheduler : 当你的程序使用了gevent(高性能的Python并发框架)的时候使用
  • TornadoScheduler : 当你的程序基于Tornado(一个web框架)的时候使用
  • TwistedScheduler : 当你的程序使用了Twisted(一个异步框架)的时候使用
  • QtScheduler : 如果你的应用是一个Qt应用的时候可以使用

到此这篇关于python 包之 APScheduler 定时任务 的文章就介绍到这了!

Python 相关文章推荐
把MySQL表结构映射为Python中的对象的教程
Apr 07 Python
解决PyCharm中光标变粗的问题
Aug 05 Python
解决Python print 输出文本显示 gbk 编码错误问题
Jul 13 Python
python实现简单加密解密机制
Mar 19 Python
Python数据类型之String字符串实例详解
May 08 Python
PyQt5实现暗黑风格的计时器
Jul 29 Python
python yield关键词案例测试
Oct 15 Python
使用Python实现 学生学籍管理系统
Nov 26 Python
python绘制玫瑰的实现代码
Mar 02 Python
Python中私有属性的定义方式
Mar 05 Python
Python 发送邮件方法总结
Aug 10 Python
Python extract及contains方法代码实例
Sep 11 Python
Python数据可视化之Seaborn的安装及使用
python 闭包函数详细介绍
Apr 19 #Python
Python  lambda匿名函数和三元运算符
Apr 19 #Python
Python使用mitmproxy工具监控手机 下载手机小视频
使用Python通过企业微信应用给企业成员发消息
Python用any()函数检查字符串中的字母以及如何使用all()函数
Apr 14 #Python
python在package下继续嵌套一个package
Apr 14 #Python
You might like
用PHP实现 上一篇、下一篇的代码
2012/09/29 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
2015/11/04 PHP
php英文单词统计器
2016/06/23 PHP
CI框架表单验证实例详解
2016/11/21 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
js给页面加style无效果的解决方法
2014/01/20 Javascript
$.each与$().each的区别示例介绍
2014/03/20 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
AngularJS学习第一篇 AngularJS基础知识
2017/02/13 Javascript
分享一道关于闭包、bind和this的面试题
2017/02/20 Javascript
jquery easyui dataGrid动态改变排序字段名的方法
2017/03/02 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
分分钟学会vue中vuex的应用(入门教程)
2017/09/14 Javascript
vue中v-cloak解决刷新或者加载出现闪烁问题(显示变量)
2018/04/20 Javascript
使用ECharts实现状态区间图
2018/10/25 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
详解Python中的Cookie模块使用
2015/07/06 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
用Django写天气预报查询网站
2018/10/21 Python
Python使用修饰器进行异常日志记录操作示例
2019/03/19 Python
Python中字典与恒等运算符的用法分析
2019/08/22 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
python画图常规设置方式
2020/03/05 Python
上海世博会志愿者口号
2014/06/17 职场文书
深入解读Java三大集合之map list set的用法
2021/11/11 Java/Android
Vue自定义铃声提示音组件的实现
2022/01/22 Vue.js
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL