Python编程:定时任务apscheduler框架

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Python编程:定时任务apscheduler框架

APScheduler : Advanced Python Scheduler

官方文档:https://apscheduler.readthedocs.io/en/3.3.1/userguide.html

本文只做简单总结,具体示例参考文章底部链接

20190509102324930.png

图片来自:https://blog.csdn.net/somezz/article/details/83104368#_225

安装

$ pip install apscheduler

体系结构

schedulers(调度器)
    - BlockingScheduler : 主线程中运行,阻塞线程
    - BackgroundScheduler : 后台线程中运行,不会阻塞线程
    - AsyncIOScheduler
    - GeventScheduler
    - TornadoScheduler
    - TwistedScheduler
    - QtScheduler
triggers(触发器)
    - date 一次性任务
        - run_date (datetime 或 str) 作业的运行日期或时间
        - timezone (datetime.tzinfo 或 str)    指定时区
    - interval 循环任务
        - weeks (int)   间隔几周
        - days (int)  间隔几天
        - hours (int) 间隔几小时
        - minutes (int)   间隔几分钟
        - seconds (int)   间隔多少秒
        - start_date (datetime 或 str) 开始日期
        - end_date (datetime 或 str)   结束日期
        - timezone (datetime.tzinfo 或str) 时区
        - job stores(作业存储器)
    - cron 定时任务
        - year (int 或 str)    年,4位数字
        - month (int 或 str)   月 (范围1-12)
        - day (int 或 str) 日 (范围1-31
        - week (int 或 str)    周 (范围1-53)
        - day_of_week (int 或 str) 周内第几天或者星期几 (范围0-6 或者 mon,tue,wed,thu,fri,sat,sun)
        - hour (int 或 str)    时 (范围0-23)
        - minute (int 或 str)  分 (范围0-59)
        - second (int 或 str)  秒 (范围0-59)
        - start_date (datetime 或 str) 最早开始日期(包含)
        - end_date (datetime 或 str)   最晚结束时间(包含)
        - timezone (datetime.tzinfo 或str) 指定时区
job stores(作业存储器)
    - 添加 job
        - add_job()
        - scheduled_job()
    - 移除 job
        - remove_job()
        - job.remove()
    - 修改 job
        - modify_job()
     - 获取 job 列表
        - get_jobs()
    - 关闭 job
        - scheduler.shutdown(wait=false)
executors(执行器)
    - ProcessPoolExecutor
    - ThreadPoolExecutor

简单示例

from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()
# 方式一:interval 间隔任务
scheduler.add_job(task_name, 'interval', seconds=5)
# 方式二:cron 定时任务 */3 0-10 * * *
scheduler.add_job(main, 'cron', minute="*/3", hour="0-10", day="*", month="*",day_of_week="*")
# 方式三:date 定时任务(执行一次)
scheduler.add_job(my_job, 'date', run_date=datetime(2009, 11, 6, 16, 30, 5))
scheduler.start()

说明:

task_name 需要修改为自定义任务函数名称

其他示例

from datetime import datetime
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()
def jobA():
    print("{}: {}".format("job A", datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
def jobC():
    print("{}: {}".format("job C", datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
# 添加作业, 方式一,可指定job_id
scheduler.add_job(jobA, 'interval', seconds=5)
scheduler.add_job(jobC, 'interval', minutes=2, id="job_c")
# 添加作业, 方式二
@scheduler.scheduled_job('interval', seconds=5)
def jobB():
    print("{}: {}".format("job B", datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
# 移除作业
scheduler.remove_job(job_id="job_c")
scheduler.start()

关闭日志

如果日志太多,看不到自己的重要日志,那么就关闭apscheduler的日志

import logging
logging.basicConfig()
logging.getLogger('apscheduler').setLevel(logging.ERROR)

参考

  1. 定时任务框架APScheduler学习详解
  2. apscheduler的使用
  3. Advanced Python Scheduler
  4. https://apscheduler.readthedocs.io/en/latest/index.html
相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
2月前
|
JSON 监控 BI
拼多多批量下单工具,拼多多买家批量下单软件,低价下单python框架分享
使用Selenium实现自动化操作流程多线程订单处理提升效率
|
2月前
|
机器人 数据安全/隐私保护 Python
企业微信自动回复软件,企业微信自动回复机器人,python框架分享
企业微信机器人包含完整的消息处理流程,支持文本消息自动回复、事件处理、消息加密解密等功能
|
2月前
|
Web App开发 数据安全/隐私保护 Python
万能ck提取登录软件,京东贴吧淘宝拼多多cookie提取工具,python框架分享
这个框架使用了Selenium进行浏览器自动化操作,包含了京东和淘宝的登录示例。代码展示了如
|
3月前
|
机器学习/深度学习 数据采集 算法
Python AutoML框架选型攻略:7个工具性能对比与应用指南
本文系统介绍了主流Python AutoML库的技术特点与适用场景,涵盖AutoGluon、PyCaret、TPOT、Auto-sklearn、H2O AutoML及AutoKeras等工具,帮助开发者根据项目需求高效选择自动化机器学习方案。
305 1
|
2月前
|
JSON 数据安全/隐私保护 数据格式
拼多多批量下单软件,拼多多无限账号下单软件,python框架仅供学习参考
完整的拼多多自动化下单框架,包含登录、搜索商品、获取商品列表、下单等功能。
|
2月前
|
存储 API 数据库
自动发短信的软件,批量自动群发短信,手机号电话号生成器【python框架】
这个短信群发系统包含以下核心功能: 随机手机号生成器(支持中国号码) 批量短信发送功能(使用Twilio API)
|
2月前
|
JSON 机器人 API
微信机器人自动回复插件,vx自动回复机器人脚本助手,python框架分享
这个微信机器人系统包含三个主要模块:主程序基于itchat实现微信消息监听和自动回复功能
|
2月前
|
数据安全/隐私保护 Python
|
2月前
|
存储 数据库 数据安全/隐私保护
抖音ck提取工具,快手小红书微博哔哩哔哩cookie提取登录软件,python框架
这个框架提供了完整的Cookie提取功能,支持抖音、快手、小红书、微博和哔哩哔哩平台。主要特点包括
|
1月前
|
API 数据安全/隐私保护 Python
拼多多批量上架软件, 电商一键上货发布工具,python电商框架分享
多线程批量上传架构,支持并发处理商品数据 完整的拼多多API签名和token管理机制

热门文章

最新文章

推荐镜像

更多