Python 定时器框架

在 Python 生态中,有多种定时任务框架,以下进行简介:

1. APScheduler(Advanced Python Scheduler)

  • 特点:灵活性高,支持多种任务存储后端(内存、SQLAlchemy、MongoDB等)
  • 调度类型:支持日期、间隔、Cron 表达式三种调度方式
  • 适用场景:适合单机应用,也可集成到 Flask、Django 等 Web 框架中
  • 示例
python 复制代码
from apscheduler.schedulers.background import BackgroundScheduler

scheduler = BackgroundScheduler()
scheduler.add_job(my_job, 'interval', minutes=30)
scheduler.add_job(another_job, 'cron', hour=3, minute=30)
scheduler.start()

2. Celery

  • 特点:分布式任务队列,功能强大,可扩展性好
  • 消息代理:支持 RabbitMQ, Redis 等作为消息代理
  • 适用场景:大型应用,需要分布式执行的场景,任务复杂度高
  • 优势:除定时任务外,还支持异步任务处理

3. Schedule

  • 特点:轻量级,API 简单易用
  • 适用场景:小型应用,对复杂功能需求不高
  • 示例
python 复制代码
import schedule
import time

def job():
    print("定时任务执行中...")

schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

4. Django 内置的 Cron - django-crontab

  • 特点:与 Django 集成度高
  • 适用场景:Django 项目

5. Airflow

  • 特点:工作流自动化平台,适合复杂的 ETL 流程
  • 适用场景:数据工程,需要可视化监控和管理的场景

选择建议

  • 小型项目:Schedule 或 APScheduler
  • Web 应用:APScheduler 或与框架集成的专用库
  • 分布式系统:Celery
  • 数据处理工作流:Airflow
相关推荐
Sylvia33.15 小时前
LOL实时数据接入深度解析:从WebSocket到完整数据模型
java·网络·python·websocket·网络协议
梦想不只是梦与想15 小时前
Web 服务器网关协议:ASGI 和 WSGI
服务器·python·fastapi
ai小陈17 小时前
PyTorch DataLoader数据加载性能排查:GPU利用率低的实操指南
人工智能·pytorch·python·深度学习·ai·gpu算力
2601_9622992420 小时前
Azure python操作系统列表
python·操作系统·azure·虚拟机·存储配置文件
学术 学术 Fun21 小时前
如何用 API 与 Webhook 批量把图表图片转换成 VSDX
python·自动化·api·visio
2601_9621005421 小时前
python包和模块的内容整理
python·模块·导入·虚拟环境·
二进制漫游记1 天前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding
-今昭-1 天前
《V2V 迁移实战:将 VMware 虚拟机转为 OpenStack 可用 Glance qcow2 镜像》
开发语言·python
2601_962381581 天前
【转】Python渗透测试工具:sqlmap
python·渗透测试·sql注入·sqlmap·数据库安全
用户3721574261351 天前
如何使用 Python 从 Word 文档中提取图片
python