flask中使用celery的Task操作数据库(SQLAlchemy)
Celery是一个简单高效的实时分布式任务队列系统, 可以用于异步执行任务,结构上分为任务生产者,任务调度者broker,任务消费者worker。
场景:基于后台作业时有可能长时间对数据库进行更新写入等,例如,每天定时更新从网络上爬虫取下来的数据,update到对应的基金行数据中。
项目的目录结构

各个文件说明
我们主要的做法是将在manage.py当中创建celery实例对象,然后把celery对象引入app/init.py文件中的create_app函数中更新celery配置。app/tasks.py单独存放给celery的任务,models中的ORM也可以方便导入。
manage.py文件:
import config
from app import create_app
from celery import Celery
def make_celery(app_name):
broker = getattr(config[os.getenv('FLASK_ENV') or 'default'], "CELERY_BROKER_URL")
backend = getattr(config[os.getenv('FLASK_ENV') or 'default'], "CELERY_BACKEND_URL")
celery = Celery(
app_name,
broker=broker,

本文介绍了如何在Flask应用中结合Celery Task实现异步操作数据库,利用Celery的分布式任务队列系统处理后台长时间数据库更新任务。通过在manage.py创建Celery实例,然后在app/init.py中配置,并在app/tasks.py定义任务,实现与ORM和数据库的交互。同时,文章还展示了如何设置定时任务,如每周日0点0分执行特定数据库操作。
最低0.47元/天 解锁文章
1127

被折叠的 条评论
为什么被折叠?



