python -- Apscheduler + 定时任务

本文介绍了如何使用Apscheduler在Python中创建定时任务,包括调度器类型如BlockingScheduler、BackgroundScheduler等,触发器如data、interval和cron,以及作业存储和执行器的相关设置。还讲解了如何添加、修改和移除作业,并提到了Apscheduler提供的不同存储方式如MemoryJobStore、sqlalchemy等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python定时任务的实现方法

使用apscheduler,
参考:
https://www.jianshu.com/p/b77d934cc252
https://www.jianshu.com/p/ad2c42245906

from apscheduler.schedulers.blocking import BlockingScheduler
    # BlockingScheduler:在进程中运行单个任务,
    # 调度器是唯一运行的东西

    # 1.创建scheduler调度
    scheduler = BlockingScheduler()
    # 采用阻塞的方式
    
    # 2.添加调度任务【关键】
    scheduler.add_job(jobs,trigger)
    
    # 3.运行调度
    scheduler.start()

apscheduler基础组件:调度器(scheduler)、触发器(tigger)、作业存储(job store)、执行器(executor)

  1. 调度器:任务调度,添加、修改、删除作业
  • BlockingScheduler : 调度器在当前进程的主线程中运行,也就是会阻塞当前线程,适用于单个任务。
  • BackgroundScheduler : 调度器在后台线程中运行,不会阻塞当前线程。
  • AsyncIOScheduler : 结合 asyncio 模块(一个异步框架)一起使用。
  • GeventScheduler : 程序中使用 gevent(高性能的Python并发框架)作为IO模型,和 GeventExecutor 配合使用。
  • TornadoScheduler : 程序中使用 Tornado(一个web框架)的IO模型,用 ioloop.add_timeout 完成定时唤醒。
  • TwistedScheduler : 配合 TwistedExecutor,用 reactor.callLater 完成定时唤醒。
  • QtScheduler : 你的应用是一个 Qt 应用,需使用QTimer完成定时唤醒。
  1. 【关键设置】触发器:调度任务被触发,不触发触发没有操作
  • data 触发器,作业任务只执行一次,运行完毕自动清除;若错过指定运行时间,任务不会被创建。

    参数:
    run_date (datetime 或 str):作业的运行日期或时间
    timezone (datetime.tzinfo 或 str):指定时区

# 1.run-data为str,在2019-12-09 00 运行jbos
scheduler.add_job(jobs,'date',run_data='2019-12-09 00:00:00',args=['text'])

# 2.run_data为datatime,在 2019-12-09 00:00:00 时刻运行一次 jobs 方法
scheduler.add_job(jobs, 'date', run_date=datetime(2019, 12, 9, 0, 0, 0), args=['text'])

# 3.run_data 为data, 在2019-12-9 运行一次jobs
scheduler.add_job(jobs, 'date', run_date=date(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值