ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python之APScheduler 定时任务

2022-05-19 16:34:24  阅读:214  来源: 互联网

标签:desire schedulers apscheduler python 调度 APScheduler world import 定时


一、APScheduler

APScheduler全称Advanced Python Scheduler 作用为在指定的时间规则执行指定的作业。

  • 指定时间规则的方式可以是间隔多久执行,可以是指定日期时间的执行,也可以类似Linux系统中Crontab中的方式执行任务。
  • 指定的任务就是一个Python函数。

二、安装

pip install apscheduler

三、创建定时任务

  • 创建一个任务 func

    一个任务就是一个函数,或者异步函数

  • 创建调度器 BlockingScheduler

    BlockingScheduler是最基本的调度器,阻塞型的调度器

  • 把任务添加到调度器中 add_job

    参数一:任务名
    参数二:触发器,使用的是interval间隔触发器
    seconds:间隔时间,单位秒,没个几秒执行一次
    args:所添加的任务的传入参数

  • 启动定时任务 start
from datetime import datetime

from apscheduler.schedulers.blocking import BlockingScheduler


def func(name):
    now = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    print(now + f" Hello world, {name}")


scheduler = BlockingScheduler()
scheduler.add_job(func, 'interval', seconds=3, args=["desire"])
scheduler.start()

  执行结果:

2022-05-19 16:28:51 Hello world, desire
2022-05-19 16:28:54 Hello world, desire
2022-05-19 16:28:57 Hello world, desire
2022-05-19 16:29:00 Hello world, desire
2022-05-19 16:29:03 Hello world, desire

四、调度器(schedulers)

BlockingScheduler

  • 阻塞型调度器,最基本的调度器,调用start函数会阻塞当前线程,不能立即返回
  • 适用于调度程序时进程中唯一运行的进程
  • from apscheduler.schedulers.blocking import BlockingScheduler

BackgroundScheduler
后台运行调度器,调用start后主线程不会阻塞
适用于调度程序在应用程序的后台运行
from apscheduler.schedulers.background import BackgroundScheduler
AsyncIOScheduler
适用于使用了asyncio模块的应用程序
from apscheduler.schedulers.asyncio import AsyncIOScheduler
GeventScheduler
适用于使用gevent模块的应用程序
from apscheduler.schedulers.gevent import GeventScheduler
TwistedScheduler
适用于构建Twisted的应用程序
from apscheduler.schedulers.twisted import TwistedScheduler
QtScheduler:
适用于构建Qt的应用程序
from apscheduler.schedulers.qt import QtScheduler
TornadoScheduler
适用于构建Tornado的应用程序
from apscheduler.schedulers.tornado import TornadoScheduler

  

标签:desire,schedulers,apscheduler,python,调度,APScheduler,world,import,定时
来源: https://www.cnblogs.com/QiuPing-blog/p/16289022.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有