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

2389

被折叠的 条评论
为什么被折叠?



