flask中使用celery的Task操作数据库(SQLAlchemy)

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值