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 相关文章推荐
Python3实现从指定路径查找文件的方法
May 22 Python
python Django模板的使用方法
Jan 14 Python
Python处理菜单消息操作示例【基于win32ui模块】
May 09 Python
python3学习之Splash的安装与实例教程
Jul 09 Python
python模块导入的细节详解
Dec 10 Python
Python企业编码生成系统之主程序模块设计详解
Jul 26 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 Python
Python requests.post方法中data与json参数区别详解
Apr 30 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
Apr 30 Python
python的dict判断key是否存在的方法
Dec 09 Python
Python经常使用的一些内置函数
Apr 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出现Cannot modify header information问题的解决方法大全
2008/04/09 PHP
深入apache host的配置详解
2013/06/09 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
JS 遮照层实现代码
2010/03/31 Javascript
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
2016/12/23 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
vue.js实现的经典计算器/科学计算器功能示例
2018/07/11 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
jQuery操作cookie的示例代码
2019/06/05 jQuery
如何使用JavaScript实现栈与队列
2019/06/24 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
探索Python3.4中新引入的asyncio模块
2015/04/08 Python
用Python写王者荣耀刷金币脚本
2017/12/21 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例
2020/03/01 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
银行实习鉴定
2013/12/13 职场文书
幼儿园教研活动方案
2014/01/19 职场文书
基层领导干部“四风”问题批评与自我批评
2014/09/23 职场文书
2014年远程教育工作总结
2014/12/09 职场文书
2015年世界艾滋病日活动总结
2015/03/24 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
2016护理专业求职自荐书
2016/01/28 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python
Python中npy和mat文件的保存与读取
2022/04/24 Python