Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python 调度相关包的使用

Python 调度相关包的使用

原创
作者头像
dandelion1990
发布于 2024-03-09 15:42:23
发布于 2024-03-09 15:42:23
16800
代码可运行
举报
运行总次数:0
代码可运行

schedule

使用起来比较简单的一个包

安装:

代码语言:bash
AI代码解释
复制
pip install schedule

具体用法:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
import schedule

# add schedule job
schedule.every(10).seconds.do(lambda: print("running"))

# run scheduler
while True:
    schedule.run_pending()
    time.sleep(1)

运行带有参数的 job

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
def func(name: str):
    print(f"My name is {name}")
    
schedule.every(5).seconds.do(func, name="Tom")
while True:
    schedule.run_pending()
    time.sleep(1)

Apscheduler

一个功能更为完整的包

安装:

代码语言:bash
AI代码解释
复制
pip install apscheduler

一些基本概念:

Triggers:任务触发逻辑

  • cron:cron 格式触发
  • interval:固定时间间隔触发
  • date:在某固定日期触发一次
  • combine:组合条件触发

Scheduler

  • BlockingScheduler: 阻塞式,当程序只运行这个 scheduler 时使用
  • BackgroundScheduler:调度器在后台运行

Executor

  • ThreadPoolExecutor:默认使用多线程执行器
  • ProcessPoolExecutor:如果是 CPU 密集型任务可以使用多进程执行器

Job store:如果任务调度信息存在内存中,当程序退出后会丢失,可以其他存储器进行持久化存储

  • MemoryJobStore: 默认使用内存存储
  • SQLAlchemyJobStore
  • MongoDBJobStore
  • etc.

创建 scheduler

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
# 创建 BlockingScheduler
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()

# 创建 BackgroundScheduler
from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()

# 自定义 job store、executor、job defaults、time zone
import pytz
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor

scheduler = BackgroundScheduler(
    jobstores={'mongo': MongoDBJobStore()},
    executors={'processpool': ProcessPoolExecutor(5)},
    job_defaults = {
        'coalesce': False,
        'max_instances': 3
    },
    timezone=pytz.utc
)
    

新增任务

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
from datetime import datetime
def tick():
    print(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

# add job with cron trigger
scheduler.add_job(tick, "cron", second=0) # every minute at second 0

先创建 triggers 再创建任务

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
from apscheduler.triggers.interval import IntervalTrigger
from apscheduler.triggers.cron import CronTrigger

c_trigger = CronTrigger(second=0) # every minute at second 0
i_trigger = IntervalTrigger(seconds=10) # every 10 seconds

scheduler.add_job(tick, c_trigger)
scheduler.add_job(tick, i_trigger)

带参数任务

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
def whoami(name: str, age: int):
    print(f"My name is {name}, age is {age}")

scheduler.add_job(whoami, i_trigger, args=("Tom",))
# or
scheduler.add_job(whoami, i_trigger, kwargs={"name":"Tom", "age":13})

启动调度器

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
# start
scheduler.start()

# shutdown
scheduler.shutdown()

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
轻量级python定时器apscheduler
cron也有缺点: 1、不适合复杂的定时任务 2、定时任务修改,需要重启crontab管理 3、定时任务,没有状态存储,也不是知道是否执行了
测试加
2022/04/27
1.1K0
轻量级python定时器apscheduler
Python任务调度模块APSched
官网文档:http://apscheduler.readthedoc... API:http://apscheduler.readthedoc...
py3study
2020/01/06
1.1K0
Python基于APScheduler实现定时任务
Python这个语言的优势就在于有丰富的第三方库,既然原生实现有这样那样的缺点,我们可以借助第三方库来实现定时任务。
Steve Wang
2021/12/20
2.6K0
Python定时任务(下)
上篇文章,我们了解到有三种办法能实现定时任务,但是都无法做到循环执行定时任务。因此,需要一个能够担当此重任的库。它就是 APScheduler。
猴哥yuri
2018/08/16
2K0
Python下定时任务框架APSched
今天准备实现一个功能需要用到定时执行任务,所以就看到了Python的一个定时任务框架APScheduler,试了一下感觉还不错。
py3study
2020/01/08
1.5K0
python定时任务最强框架APScheduler详细教程
上次测试女神听了我的建议,已经做好了要给项目添加定时任务的决定了。但是之前提供的四种方式中,她不知道具体选择哪一个。为了和女神更近一步,我把我入行近10年收藏的干货免费拿出来分享给女神,希望女神凌晨2点再找我的时候,不再是因为要给他调程序了。
无涯WuYa
2020/07/15
8.3K0
python定时任务最强框架APScheduler详细教程
Python 定时任务的实现方式
目前所在的项目组需要经常执行一些定时任务,之前都是用 Node.JS 的 cron来实现 schedule job。可是这次需要连接不同的 DB,而且实现的逻辑也有些许不同,于是选择使用 Python 的定时器。
李振
2021/11/26
1.6K0
Python 定时任务的实现方式
Python实现定时任务的几种方法
该方法能够执行固定间隔时间的任务,时间间隔由time.sleep()的睡眠时间指定。
Steve Wang
2021/12/20
3.9K0
Python定时任务
1、第一种办法是最简单又最暴力。那就是在一个死循环中,使用线程睡眠函数 sleep()。
周小董
2019/03/25
5.8K0
Python定时任务
python APScheduler基本使用
https://pypi.python.org/simple/apscheduler/
一朵灼灼华
2022/08/05
5180
Python定时任务框架之Apscheduler 案例分享
  前面已经讲过Celery做定时任务的场景,现在分享另一个框架Apscheduler。Apscheduler的全称是Advanced Python Scheduler。它是一个轻量级的 Python 定时任务调度框架。同时,它还支持异步执行、后台执行调度任务。本人小小的建议是一般项目用APScheduler,因为不用像Celery那样再单独启动worker、beat进程,而且API也很简洁。
全栈测试开发日记
2023/02/02
1.8K0
Python定时任务框架之Apscheduler 案例分享
【Python】APScheduler简介
APScheduler,全称是_Advanced Python Scheduler_,具体的介绍可以看PyPI或者readthedocs的文档介绍,这篇 blog 主要是翻译User Guide一节的主要内容,不过惯例还是先简单介绍一下这个库特别的地方。
用户5522200
2020/05/11
2.8K0
Python 实现定时任务的八种方案!
来源:https://www.biaodianfu.com/python-schedule.html
Python编程与实战
2021/10/12
34.3K0
python apschedule安装使用与源码分析
我们的项目中用apschedule作为核心定时调度模块。所以对apschedule进行了一些调查和源码级的分析。 1、为什么选择apschedule? 听信了一句话,apschedule之于python就像是quartz之于java。实际用起来还是不错的。 2、安装 # pip安装方式 $ pip install apscheduler # 源码编译方式 $ wget https://pypi.python.org/pypi/APScheduler/#downloads $ python setup.py
用户1225216
2018/03/05
2.6K0
Python定时任务神器-APScheduler
但是这些定时任务库都只是提供了简答的,或者只支持静态的定时任务。而对于需要复杂定时功能,或者动态注册定时任务的场景,则无法满足。
上帝De助手
2019/09/17
3.1K0
高效定时任务处理:深入学习Python中APScheduler库的奥秘
APScheduler是Python中一个强大的第三方库,用于在后台执行定时任务。它允许我们根据设定的时间间隔、日期规则或特定时间来执行任务,适用于定时执行脚本、定时发送邮件、定时处理数据等场景。APScheduler的功能使得在Python中实现定时任务变得非常简单和高效。本文将从入门到精通地介绍APScheduler库的使用方法,带你掌握在Python中实现定时任务的技巧。
子午Python
2023/08/14
3.3K0
Python任务调度模块 – APScheduler,Flask-APScheduler实现定时任务
  看代码,定义一个函数,然后定义一个scheduler类型,添加一个job,然后执行,就可以了,代码是不是超级简单,而且非常清晰。看看结果吧。
用户1214487
2018/07/31
4.8K0
Python任务调度模块 – APScheduler,Flask-APScheduler实现定时任务
Flask 学习-86.Flask-APScheduler 创建定时任务
Flask-APScheduler是根据APScheduler编写的一个flask模块,它提供了API管理任务。
上海-悠悠
2023/01/03
2.2K0
Apscheduler时间调度程序——python定时任务
APScheduler的全称是Advanced Python Scheduler。它是一个轻量级的 Python 定时任务调度框架。APScheduler 支持三种调度任务:固定时间间隔,固定时间点(日期),Linux 下的 Crontab 命令。同时,它还支持异步执行、后台执行调度任务。
SingYi
2022/07/14
1.2K0
太好用了!Python 定时任务调度框架 APScheduler 详解!
我们在工作过程中,可能会遇到有定时任务的需求。大部分定时任务偏向 数据采集、消息提醒、邮件自动发送、数据指标统计 等场景。
Python兴趣圈
2023/12/11
7.2K0
太好用了!Python 定时任务调度框架 APScheduler 详解!
相关推荐
轻量级python定时器apscheduler
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档