ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【FastAPI 学习十二】定时任务篇

2020-12-25 22:33:30  阅读:1018  来源: 互联网

标签:FastAPI 十二 crontab apscheduler 任务 import 定时 任务调度


定时任务是一个通用场景常见的功能,之前我使用django的时候,更习惯使用celery中的定时任务,现在花时间看了看apscheduler感觉不错,就写了demo,并集成到项目代码中了

任务调度主要就是以下几个功能

  • 添加/删除 任务调度
  • 暂停/恢复 任务调度(这条我未实现)
  • 查看定时任务状态

定时任务

添加定时任务

其中添加定时任务方式,有以下三种方式

  • date: 固定的时间执行一次时 用这种
  • interval: 想要在固定的间隔时间循环执行时用这种
  • cron: 这种就是最为灵活的 crontab 表达式定时任务了

Tip: crontab写法可以参考这个网站 https://crontab.guru/

在FastAPI异步框架中,选择 AsyncIOScheduler调度程序

默认使用sqlite持久化定时任务,不至于重启就失效

from apscheduler.schedulers.asyncio import AsyncIOScheduler
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.triggers.cron import CronTrigger

Schedule = AsyncIOScheduler(
    jobstores={
        'default': SQLAlchemyJobStore(url='sqlite:///jobs.sqlite')
    }
)
Schedule.start()

代码地址

标签:FastAPI,十二,crontab,apscheduler,任务,import,定时,任务调度
来源: https://www.cnblogs.com/CharmCode/p/14191009.html

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

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

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

ICode9版权所有