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

时间:2020-12-25 23:44:19   收藏:0   阅读:107

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

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

技术分享图片

添加定时任务

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

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()

不完善的地方

这些就需要自己查看文档和issues搜索了

其他方案

定时任务有很多种方案,比如可以使用 arq, fastapi-utils, celery

说到arq我之前,使用过rq 并且学习的时候稍微翻译了一下文档 rq v1.0 https://codercharm.github.io/Python-rq-doc-cn/#/ 一晃过去一年了。

代码地址

参考地址

原文:https://www.cnblogs.com/CharmCode/p/14191009.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!