flask-定时任务


前言

有时候我们需要在服务器做一些定时任务,虽然可以使用crontab去加一些定时任务,但是python自己就有定时任务为啥不用起来,下面就是怎么简单使用apscheduler去创建python的定时任务调度,仅供参考


一、APScheduler是什么

APScheduler(全名 Advanced Python Scheduler)是一个功能强大的 Python 库,用于在应用程序中调度和执行定时任务。它允许你在一定时间间隔、特定日期和时间或特定条件下自动执行某些任务。APScheduler 可以在不同的环境中使用,如 Flask、Django 或其他 Python 应用

二、APScheduler 主要功能:

  1. 定时任务调度:你可以设置任务在指定的时间间隔、固定时间、或特定日期/时间点执行。
  2. 不同类型的触发器:如时间间隔触发、特定时间触发等。
  3. 任务存储:APScheduler 支持将调度的任务存储在数据库中,保持任务状态,即使应用程序重启后也能恢复任务。
  4. 后台调度器:它允许任务在后台运行,不会影响主应用程序的正常运行。

三、主要组成部分:

  1. Scheduler(调度器):调度器是管理任务和调度执行的核心。它根据触发器的设置来调度任务执行。
  2. Job(任务):一个被调度的任务,是具体执行的功能或操作。
  3. Trigger(触发器):触发器决定了任务何时执行,通常有几种类型:
  4. interval:按间隔执行任务(如每 5 分钟执行一次)。
  5. cron:在特定时间或日期执行任务(例如每天凌晨 1 点)。
  6. date:在指定的某个时间点执行任务。
  7. Executors(执行器):执行器负责执行任务。它定义了如何启动任务的工作线程或进程。

四、典型使用场景:

  1. 定时清理数据:定期执行某些清理任务,例如每晚清理日志。
  2. 定时发送通知:按固定时间发送邮件或消息。
  3. 定时抓取数据:定期从 API 抓取数据,执行定时的数据同步操作等

五、具体使用

1.安装 APScheduler

pip install apscheduler

或者写到requirements.txt然后执行

pip install -r requirements.txt

2.假设我们有一个需要五分钟请求一次http接口的任务

1.定义一个scheduler.py去专门处理定时

# scheduler.py
from apscheduler.schedulers.background import BackgroundScheduler
import time
import requests

def fetch_material_info():
    print("定时任务开始执行")
    try:
        response = requests.post('http://127.0.0.1:5002/api/material/get_material_info_by_api')#这个api可以是自身接口也可以是第三方接口
        i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值