Python定时库Apscheduler的简单使用

 更新时间:2021年11月13日 11:47:22   作者:雨欲语  
Apscheduler是基于Quartz的Python定时任务框架,功能上跟Quartz一致,使用上跟Quartz也几乎一致。下面通过本文给大家介绍Python定时库Apscheduler的简单使用,感兴趣的朋友一起看看吧

        在Python中需要执行定时任务,可以使用Apscheduler。

        Apscheduler是基于Quartz的Python定时任务框架,功能上跟Quartz一致,使用上跟Quartz也几乎一致。

        核心的四个部分:

        ①触发器(trigger)、②作业存储(job store)、③执行器(executor)、④调度器(scheduler)

        安装依赖:

pip install apscheduler

        间隔时间调度:

from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
 
sched = BlockingScheduler()

def test_job():
    print(f'{datetime.now():%H:%M:%S} Test job')

 
if __name__ == '__main__':
 
    sched.add_job(test_job, 'interval', id='test', seconds=5)
    sched.start()

        也可以使用装饰器:

from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
 
 
sched = BlockingScheduler()
 
 
def test_job():
    print(f'{datetime.now():%H:%M:%S} Test job')
 
 
@sched.scheduled_job('interval', seconds=5)
def test_decorator_job():
    print(f'{datetime.now():%H:%M:%S} Test decorator job')
 
 
if __name__ == '__main__':
 
    sched.add_job(test_job, 'interval', id='test', seconds=5)
    sched.start()

        运行结果:

        BlockingScheduler()是调度器中的一种调度器

        sched.add_job()是添加作业

        sched.start()是开始任务

         定时调度:

        定时调度使用cron表达式进行,这里也带参数执行:

from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
 
scheduler = BlockingScheduler()
 
 
def test_args(x):
    print (f'{datetime.now():%H:%M:%S} Test cron job', x)
 
 
if __name__ == '__main__':
    scheduler.add_job(test_args, 'cron', args=('cron test',), second='*/5')
    scheduler.start()

        时间参数设置如下:

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) – 指定时区 

        接下来说一下其中的调度器:

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

        其中使用得比较多的是前三种调度器。

        删除任务:

scheduler.remove_job('task_id')

        停止任务:

scheduler.pause_job('task_id')

        恢复任务:

scheduler.resume_job('task_id')

  立即执行任务next_run_time:

scheduler.add_job(
            test_job,
            'interval',
            minutes=5,
            next_run_time=datetime.datetime.now()
        )

到此这篇关于Python定时库Apscheduler的简单使用的文章就介绍到这了,更多相关Python定时库Apscheduler使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pytorch中Schedule与warmup_steps的用法说明

    pytorch中Schedule与warmup_steps的用法说明

    这篇文章主要介绍了pytorch中Schedule与warmup_steps的用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python操作redis的方法

    python操作redis的方法

    这篇文章主要介绍了python操作redis的方法,包括Python针对redis的连接、设置、获取、删除等常用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • python中关于提升工作效率的一些小技巧

    python中关于提升工作效率的一些小技巧

    这篇文章主要介绍了python中关于提升工作效率的一些小技巧,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • python中cv2.imdecode()与cv2.imencode()的使用小结

    python中cv2.imdecode()与cv2.imencode()的使用小结

    本文介绍了cv2.imencode()和cv2.imdecode()函数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • python通过函数名调用函数的几种方法总结

    python通过函数名调用函数的几种方法总结

    今天带大家学习的是怎么使用python通过函数名调用函数,文中对python通过函数名调用函数的几种方法有非常详细的介绍,需要的朋友可以参考下
    2021-06-06
  • Python中re正则匹配数据的实现

    Python中re正则匹配数据的实现

    在Python中,可以使用re模块来使用正则表达式,本文主要介绍了Python中re正则匹配数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-04-04
  • Python爬虫之超级鹰验证码应用

    Python爬虫之超级鹰验证码应用

    众所周知python是一个很强大的语言,它拥有众多的库,今天我尝试了使用超级鹰第三方平台进行验证码的开发,需要的朋友可以参考下
    2022-08-08
  • Python OpenCV实现3种滤镜效果实例

    Python OpenCV实现3种滤镜效果实例

    opencv是一个很强大的库,支持多个编程语言,下面这篇文章主要给大家介绍了关于Python OpenCV实现3种滤镜效果的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • python学习pymongo模块的使用方法

    python学习pymongo模块的使用方法

    这篇文章主要介绍了python学习pymongo模块的使用方法,pymongo模块是python操作mongo数据的第三方模块,总结一下常用到的简单用,需要的小伙伴可以参考一下
    2022-09-09
  • Python使用BeautifulSoup进行页面解析

    Python使用BeautifulSoup进行页面解析

    在Python中,我们可以使用BeautifulSoup库来解析网页,BeautifulSoup提供了简单而强大的API,使得解析网页变得轻松而高效,下面小编就来为大家详细讲讲BeautifulSoup解析网页的具体操作吧
    2023-09-09

最新评论