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使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python遍历路径破解表单的示例

    python遍历路径破解表单的示例

    这篇文章主要介绍了python遍历路径破解表单的示例,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-11-11
  • Flask 让jsonify返回的json串支持中文显示的方法

    Flask 让jsonify返回的json串支持中文显示的方法

    下面小编就为大家分享一篇Flask 让jsonify返回的json串支持中文显示的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 教你python 中如何取出colomap部分的颜色范围

    教你python 中如何取出colomap部分的颜色范围

    这篇文章主要介绍了python 中如何取出colomap部分的颜色范围,本文以以jet为例给大家提供一种方法,可以提取colormap色标中的一部分,取出我们满意的色标区域,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • 机器学习10大经典算法详解

    机器学习10大经典算法详解

    这篇文章主要为大家详细介绍了机器学习10大经典算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Python文本终端GUI框架示例详细讲解

    Python文本终端GUI框架示例详细讲解

    GUI,全称为图形用户界面,又称为图形用户接口,是一种人与计算机通信的界面显示格式。那么Python常用GUI框架有哪些呢?我们来看看具体介绍
    2022-11-11
  • python3.x 将byte转成字符串的方法

    python3.x 将byte转成字符串的方法

    今天小编就为大家分享一篇python3.x 将byte转成字符串的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python计算一个序列的平均值的方法

    python计算一个序列的平均值的方法

    这篇文章主要介绍了python计算一个序列的平均值的方法,涉及Python递归遍历与数学计算的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 使用Django启动命令行及执行脚本的方法

    使用Django启动命令行及执行脚本的方法

    今天小编就为大家分享一篇使用Django启动命令行及执行脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python使用everything库构建文件搜索和管理工具

    Python使用everything库构建文件搜索和管理工具

    在这篇博客中,我将分享如何使用 Python 的 everytools库构建一个简单的文件搜索和管理工具,这个工具允许用户搜索文件、查看文件路径、导出文件信息到 Excel,以及生成配置文件,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-08-08
  • django项目环境搭建及在虚拟机本地创建django项目的教程

    django项目环境搭建及在虚拟机本地创建django项目的教程

    这篇文章主要介绍了django项目环境搭建及在虚拟机本地创建django项目的教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08

最新评论