当前位置: 首页 > news >正文

flask使用定时任务flask_apscheduler(APScheduler)

Flask-APScheduler描述:

Flask-APScheduler 是一个 Flask 扩展,增加了对 APScheduler 的支持。 

APScheduler 有三个内置的调度系统可供您使用:

  • Cron 式调度(可选开始/结束时间)

  • 基于间隔的执行(以偶数间隔运行作业,可选开始/结束时间)

  • 一次性延迟执行(在设定的日期/时间运行一次作业)

1.安装 flask_apscheduler 库

pip install flask_apscheduler

2.app.py中的代码

2.1初始化APScheduler

# 创建Flask应用
app = Flask(__name__)
# 初始化APScheduler
scheduler = APScheduler()

 2.2使用方式

描述这里使用cron表达式

cron表达式生成器地址:https://cron.ciding.cc/

方式一: 硬编码方式使用

# 创建Flask应用
app = Flask(__name__)
# 初始化APScheduler
scheduler = APScheduler()# 方式一硬编码;
# 这些代码也可以放在if __name__ == '__main__':内,与调试运行方式有关,
# 1.flask服务方式运行不会走if __name__ == '__main__':内代码;
# 2.以Python文件(app.py)方式运行会走if __name__ == '__main__':内代码;
scheduler.add_job(func=MyService.my_job, id='my_job', trigger='cron', second='0/5')
scheduler.init_app(app=app)
scheduler.start()

方式二: 读取配置方式使用 

配置中代码 

class Config:JOBS = [{'id': 'job1','func': 'app:MyService.my_job',  # 注意这里的格式,app 是 Flask 应用对象的名称(app.py),: 后面是任务函数名'trigger': 'cron',# 'day_of_week': '0-6',  # 每天执行# 'hour': 18,  # 18 点执行# 'inute': 30,  # 30 分执行# 'econd': 5  # 0 秒执行'second': '0/5'}# ,# {#     'id': 'job2',#     'func': task2,  # 也可以直接使用函数名#     'trigger': 'interval',#     'econds': 30  # 每隔 30 秒执行一次# }]SCHEDULER_API_ENABLED = True
# 创建Flask应用
app = Flask(__name__)
# 初始化APScheduler
scheduler = APScheduler()# 方式一硬编码
# scheduler.add_job(func=MyService.my_job, id='my_job', trigger='cron', second='0/5')
# 方式二读取配置
app.config.from_object(Config())
scheduler.init_app(app=app)
scheduler.start()

3.my_service.py中(MyService类)代码

from datetime import datetimefrom flask import Flaskclass MyService:@classmethoddef my_job(cls):print(f"my_job,当前时间{datetime.now()}")

4.项目整体结构

5.运行效果

具体代码

https://gitee.com/jxzcode_admin/flask-project.git

参考资料

https://blog.csdn.net/m0_48770520/article/details/130735727

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vue3解决报错:ResizeObserver loop completed with undelivered notifications
  • MinIO - 服务端签名直传(前端 + 后端 + 效果演示)
  • git查看版本,查看安装路径、更新版本
  • 图解 RocketMQ 架构
  • 三星首款智能戒指 Galaxy Ring 将于7月24日上市,售价399美元
  • 深入理解 KVO
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 找单词(200分) - 三语言AC题解(Python/Java/Cpp)
  • 真实测评网上较火的两款智能生成PPT产品:秒出PPTAI PPT
  • uni-app/vue项目如何封装全局消息提示组件
  • Java接口案例
  • HTML 标签简写和全称及其对应的中文说明和实例
  • SQL MySQL定时器/事件调度器(Event Scheduler)
  • Deepspeed : AttributeError: ‘DummyOptim‘ object has no attribute ‘step‘
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • 7.深度学习概述
  • docker容器内的网络抓包
  • ES6语法详解(一)
  • JAVA之继承和多态
  • js中forEach回调同异步问题
  • Mybatis初体验
  • PHP面试之三:MySQL数据库
  • python3 使用 asyncio 代替线程
  • React的组件模式
  • Spark RDD学习: aggregate函数
  • 高程读书笔记 第六章 面向对象程序设计
  • 关于List、List?、ListObject的区别
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 实现菜单下拉伸展折叠效果demo
  • 学习笔记:对象,原型和继承(1)
  • ​520就是要宠粉,你的心头书我买单
  • ​马来语翻译中文去哪比较好?
  • ​用户画像从0到100的构建思路
  • #数据结构 笔记三
  • (03)光刻——半导体电路的绘制
  • (1)(1.11) SiK Radio v2(一)
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (33)STM32——485实验笔记
  • (C语言)fgets与fputs函数详解
  • (k8s)Kubernetes本地存储接入
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (南京观海微电子)——COF介绍
  • (十六)一篇文章学会Java的常用API
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (四)模仿学习-完成后台管理页面查询
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)Linux NTP配置详解 (Network Time Protocol)
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)创业家杂志:UCWEB天使第一步
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET WPF 抖动动画