[Python学习]定时器Apscheduler基本用法以及如何传参数给job

本文介绍了Python的Apscheduler库,用于基于日期和时间间隔周期性执行任务。执行方法包括使用装饰器和添加任务列表。装饰器如`sched.scheduled_job`可设置为每秒执行一次或按cron表达式每周一到周五19:30执行。此外,还概述了不同类型的调度器,如BlockingScheduler、BackgroundScheduler等,适合不同应用场景。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

Apscheduler的安装:pip install apscheduler即可.

Apscheduler功能:基于日期、时间间隔周期性地执行任务.

执行方法:通过装饰器 或 添加任务列表再调用start方法

通过装饰器再调用start方法:

from apscheduler.schedulers.blocking import BlockingScheduler #引包

sched = BlockingScheduler() #建立BlockingScheduler对象(调度器)

@sched.scheduled_job('interval', seconds=1) 
def a():
    print '123'

if __name__ = '__main__':
    sched.start() #调用start方法

关于@sched.scheduled_job('interval', seconds=1):'interval'表示基于时间间隔周期执行,对应参数为seconds,表示多少秒执行一次;

同时可以使用@sched.scheduled_job('cron', hour=19, minute=30, day_of_week = 'mon-fri'):'corn'表示基于日期执行,表示每周一至周五19:30执行;

添加任务列表再调用start方法:

from apscheduler.schedulers.blocking import BlockingScheduler #引包

sched = BlockingScheduler() #建立BlockingScheduler对象

def test(x):
    print(x)

if __name__ == '__main__':
    sched = BlockingScheduler() #建立BlockingScheduler对象(调度器)
    sched.add_job(test, 'corn', hour=19, minute=30, args=[123]) #添加test函数任务
    try:
        scheduler.start()
    except (KeyboardInterrupt, SystemExit):
        pass

调度器分类

上述代码中的使用的都是BlockingScheduler,其特点如下:

  • BlockingScheduler:适用于调度程序是进程中唯一运行的进程,调用start函数会阻塞当前线程,不能立即返回.
  • BackgroundScheduler:适用于调度程序在应用程序的后台运行,调用start后主线程不会阻塞.
  • AsyncIOScheduler:适用于使用了asyncio模块的应用程序.
  • GeventScheduler:适用于使用gevent模块的应用程序.
  • TwistedScheduler:适用于构建Twisted的应用程序.
  • QtScheduler:适用于构建Qt的应用程序.

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值