【Django】Celery在Django中的使用+Docker中的部署

官方文档
在Docker容器中配置和运行Django + Celery
docker-compose部署django+nginx+uwsgi+celery+redis+mysql

概要

Celery(芹菜队列)是一个分布式任务队列(消息队列服务),用于需要后台执行的异步任务,异步任务简单的理解就是耗时的操作任务

celery的应用情景:关于 celery 的应用场景问题

  • 充当异步任务队列:当请求的任务需要花费一定时间才能完成时,如发送邮件,短信验证码,文件读写。但这个意思并不是花费时间的一定适合用celery解决,要具体问题具体分析
  • 定时任务

Django中使用

这节的操作完全基于项目之后要在docker部署。。
pip install celery
1、celeryconf.py
文件作用大概是告诉django我使用了celery,是celery的配置文件。里面设置了celery的broker和backend的链接,还有时区等等
不一定要叫这个名字,有放项目文件夹下的也有放具体使用到的app文件夹下的
2、tasks.py
使用celery的装饰器,装饰需要被celery异步执行的函数
3、__init__.py
导入celery模块,导入task模块.指明序号1的配置文件位置,并在里面申明app用于task文件里装饰函数的使用

不太确定这段代码放的位置。。有放在app文件夹下migrations文件夹的__init__.py文件中的
4、在django需要使用的地方导入tasks模块,使用里面的函数
5、先在终端中启动workercelery worker -A celery_demo -l INFO,再启动程序

Docker中部署

首先说明,celery在执行任务时需要通过一个消息中间件(Broker)来接收和发送任务消息,以及(Backend)存储任务结果, 一般使用rabbitMQ或者Redis。这段话意思是,docker部署一定还要加一个容器放rabbitMQ或者Redis,单独只有一个celery是跑不起来的。

docker-compose.yml文件中:
command:celery -A web worker -l info
或者
celery worker -A myproject.celeryconf -Q default -n default@%h
depend on:broker和backend使用的组件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值