Django中使用Celery实现异步队列(基于redis)
Song •
1796 次浏览 •
0个评论 •
2018年06月20日
楼主最近写一个智能客服的系统,会用到异步队列处理任务,所以我整理了一下:Django中使用Celery实现异步队列(基于redis)
一、环境需求
celery==3.1.25
celery-with-redis==3.0
django-celery==3.1.17
二、配置
进入项目settings.py
配置环境
import djcelery
...
INSTALLED_APPS = (
...
'djcelery',
}
...
djcelery.setup_loader()
# 传递消息时使用的redis 的ip 端口 数据库名
BROKER_URL = 'redis://127.0.0.1:6379/2'
# 如果有数据库密码
# BROKER_URL = 'redis://:foobared@localhost:6379/02'
# 在tasks文件夹里面的task模块的内容--所以需要创建模块
CELERY_IMPORTS = ('tasks.task')
三、使用celery队列
1、编写task任务
进入项目下,在manage.py
目录新建tasks/
文件夹,然后创建task.py
文件
from django.core.mail import send_mail
from celery import task
from django.conf import settings
@task
def sayemail(email):
print(email)
2、在django视图使用celery队列
使用队列非常简单,只需要引入task.py
文件即可,然后通过访问视图即可调用队列:
from tasks import task
def sayemail(request):
task.sayemail.delay("admin@ptorch.com")
# 将任务教给celery执行
return HttpResponse('ok')
3、生成迁移以及开启服务
执行迁移生成celery需要的数据表
python manage.py migrate
启动Redis,已经无需要重复启动,参考ubuntu中redis的安装与设置以及允许远程访问
redis-server
启动worker,具体可以参考Python使用Celery分布式异步队列/任务调度(基于Redis)
python manage.py celery worker --loglevel=info
四、使用flower检测队列运行情况(非必须)
Celery提供了一个工具flower,将各个任务的执行情况、各个worker的健康状态进行监控并以可视化的方式展现
1、安装flower:
pip install flower
2、启动flower(默认会启动一个webserver,端口为5555):
python manage.py celery flower
3、进入http://localhost:5555即可查看
四、常见问题
1、django.db.utils.ProgrammingError: (1146, "Table 'protal.celery_taskmeta' doesn't exist")
执行迁移生成celery需要的数据表
python manage.py migrate
原文出处 :Django中使用Celery实现异步队列(基于redis) - pytorch中文网 原文出处: https://www.ptorch.com/news/185.html
用户评论
当前暂无评价,快来发表您的观点吧...
更多相关好文
当前暂无更多相关好文推荐...
-
微信公众号文章/菜单添加小程序时路径如何获取? 2021-12-22
-
如何轻松获取微信小程序路径path? 2021-12-22
-
cannot import name 'CUDA_HOME' from 'mmcv.utils' 2021-12-05
-
vgg的loss一轮达到ln(1/n)阈值,如何解决 2021-11-21
-
如何下载使用utils库 2021-10-27
热门文章
-
微信公众号文章/菜单添加小程序时路径如何获取? 2021-12-22
-
如何轻松获取微信小程序路径path? 2021-12-22
-
python/MySQL分页查询方法与性能优化 2021-06-23
-
mitmproxy & python 忽略所有的https/ssl请求 2021-04-19
-
如何使用邮件/邮箱推广微信公众号/小程序? 2021-01-28
栏目最新文章
公告提示
- pytorch中文文档
- pytorch官方文档
提交评论