flask_apscheduler 定时任务框架

news/2024/10/22 14:03:52/

简介

Flask_apscheduler是一个在Flask框架中使用的APScheduler库的扩展。APScheduler是一个用于调度任务的Python库,可以在指定的时间间隔调度函数、方法或任意可调用对象的执行。

Flask_apscheduler对APScheduler进行了集成,使得在Flask应用中可以简便地使用调度任务。它提供了一个可以在Flask应用中配置和管理调度任务的接口,并且可以与Flask的上下文管理机制结合使用,确保调度任务在正确的应用上下文中运行。

使用Flask_apscheduler,可以通过简单的配置和使用Flask的路由和视图函数,实现定时任务的调度和执行。它可以用于定时执行后台任务、定时更新数据库或缓存、定时发送电子邮件等各种应用场景。

安装

使用pip安装

pip install flask_apscheduler

示例

python">from datetime import datetime
from flask import Flask
from flask_apscheduler import APSchedulerapp = Flask(__name__)
app.config['SCHEDULER_API_ENABLED'] = Truescheduler = APScheduler()
scheduler.init_app(app)# 在每分钟的第10秒,会打开文件向里追加当前时间。
@scheduler.task('cron', id='write_file', second='10')
def job1():with open('job', 'a+')as f:f.write(str(datetime.now()) + "\n")@app.route("/")
def index():return 'ok'scheduler.start()if __name__ == '__main__':app.run(host='0.0.0.0')

将SCHEDULER_API_ENABLED设置为True,服务启动后,会自动融合加载flask_apscheduler提供的API接口:

1. /scheduler [GET] > 获取服务基本信息
2.  /scheduler/jobs [POST json job data] > 添加新的任务
3. /scheduler/jobs/<job_id> [GET] > 根据job_id返回任务的详细信息
4. /scheduler/jobs [GET] > 返回所有任务的信息
5. /scheduler/jobs/<job_id> [DELETE] > 删除任务
6. /scheduler/jobs/<job_id> [PATCH json job data] > 更新一个已经存在的任务
7. /scheduler/jobs/<job_id>/pause [POST] > 暂停一个任务并返回任务的信息
8. /scheduler/jobs/<job_id>/resume [POST] > 重新启动一个任务并返回任务信息
9. /scheduler/jobs/<job_id>/run [POST] > 启动一个任务并返回任务的信息

用户可以根据其基础功能制作自己的API接口:

1. scheduler.start()  
2. scheduler.shutdown()
3. scheduler.pause() > 暂停所有任务
4. scheduler.resume() > 开启任务
5. scheduler.add_listener(<callback function>,<event>) 添加监听事件
6. scheduler.remove_listener(<callback function>) 去除监听事件
7. scheduler.add_job(<id>,<function>, **kwargs)  添加job
8. scheduler.remove_job(<id>, **<jobstore>) 删除job
9. scheduler.remove_all_jobs(**<jobstore>) 
10. scheduler.get_job(<id>,**<jobstore>) 获取job信息
11. scheduler.modify_job(<id>,**<jobstore>, **kwargs) 修改job
12. scheduler.pause_job(<id>, **<jobstore>) 暂停job
13. scheduler.resume_job(<id>, **<jobstore>)  恢复job
14. scheduler.run_job(<id>, **<jobstore>) 启动job
15. scheduler.authenticate(<function>)  验证

注意:flask_apscheduler 启动的任务,是以线程方式启动的,这意味着你的任务不能是CPU密集型任务,不然效果会很差的。


http://www.ppmy.cn/news/1439687.html

相关文章

【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第一章)LED灯闪烁实验例程

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 适用于板卡型号&#xff1a; 紫光同创PG2L50H_MBG324开发平台&#xff08;盘古PGX-Nano&#xff09; 一&#xff1a;…

Python 中的花卉矩阵组合

使用场景描述 (rib) 协议编写脚本的基础知识。通过创建在 3D 空间中转换的基本几何图形,解决了 xyz 坐标系的基础知识。初步渲染是使用基本着色完成的,因此可以更容易地看到几何体。RenderMan 图1 图 1 是我作为作业参考的示例图片,并尝试匹配 中的图片。为了完成这项任务…

数据中台工具:企业数据管理的核心动力_光点科技

在数字经济时代&#xff0c;数据中台工具已经成为各大企业提升效率、优化决策的核心动力。通过集成、分析和管理企业内外的各种数据&#xff0c;数据中台工具不仅可以帮助企业洞察市场趋势&#xff0c;还能够预测用户行为&#xff0c;推动企业实现精准营销以及产品优化。本文将…

机器学习-异方差性是什么,如何克服异方差性?

异方差性&#xff08;Heteroscedasticity&#xff09;是指在回归模型中&#xff0c;随着自变量的变化&#xff0c;误差项的方差不是恒定的情况。简单来说&#xff0c;异方差性表示了随着自变量取值的不同&#xff0c;误差项的方差存在变化。 异方差性可能导致以下问题&#xff…

Spark 基础

/* Why Spark一、MapReduce编程模型的局限性1、繁杂&#xff1a;只有Map和Reduce两个操作&#xff0c;复杂的逻辑需要大量的样板代码2、处理效率低&#xff1a;2.1、Map中间结果写磁盘&#xff0c;Reduce写HDFS&#xff0c;多个Map通过HDFS交换数据2.2、任务调度与启动开销大3、…

安卓玩机工具推荐----MTK芯片 简单制作线刷包 备份分区 备份基带 去除锁类 推荐工具操作解析

工具说明 在前面几期mtk芯片类玩机工具中解析过如何无官方固件从手机抽包 制作线刷包的步骤&#xff0c;类似的工具与操作有很多种。演示的只是本人片面的理解与一些步骤解析。mtk芯片机型抽包关键点在于..mt*****txt的分区地址段引导和 perloader临时分区引导。前面几期都是需…

【提示学习】PromptSync论文问题汇总

文章目录 PromptSync: Bridging Domain Gaps in Vision-Language Models through Class-Aware Prototype Alignment and Discrimination&#xff08;2024CVPR&#xff09;1 Introduction2 Related Work2.1 CLIP2.2 TPT 3 Methodology3.1 提出方法PromptSync3.2 类感知原型生成&…

AMBA-CHI协议详解(二)

《AMBA 5 CHI Architecture Specification》 文章目录 2.1 Channels综述2.2 Channel域段2.2.1 request fields2.2.2 Response fields2.2.3 Snoop request fields2.2.4 Data fields 2.3 事务结构2.3.1 Read transactions2.3.1.1 Allocating Read2.3.1.2 Non-allocating Read 2.…