Django+celery+rabbitmq配置文档

### Django+Celery+RabbitMQ配置文档 #### 一、环境搭建与配置 ##### 1.1 系统环境 - **操作系统**: Ubuntu 14.04 - **开发工具**: PyCharm 5.0 - **虚拟环境**: 使用虚拟环境隔离项目依赖,避免环境冲突。 ##### 1.2 软件安装 - **Django**: 安装Django 1.8版本。 - **Celery**: 安装Celery 4.0.2版本。 - **Django REST Framework**: 安装Django REST Framework 3.5.3版本。 - **MySQL**: 安装MySQL用于存储数据。 - **RabbitMQ**: 安装RabbitMQ作为消息中间件。 **RabbitMQ安装步骤**: - 使用`apt-get install rabbitmq-server`命令进行安装。 - 启动服务命令: `service rabbitmq-server start`。 #### 二、配置详解 ##### 2.1 Django项目配置 在Django项目中需要配置数据库信息以便于Celery能够存储任务状态等信息。具体配置如下: - 在`settings.py`中添加数据库配置: ```python DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'your_db_name', 'USER': 'your_username', 'PASSWORD': 'your_password', 'HOST': 'localhost', # 或者是你的数据库服务器地址 'PORT': '3306', } } ``` - **同步数据库**: 使用`python manage.py migrate`命令同步数据库表结构。 ##### 2.2 Celery配置 在Django项目中配置Celery需要完成以下步骤: - **安装Celery**: 使用`pip install celery==4.0.2`命令安装指定版本的Celery。 - **创建Celery实例**: 在项目的主目录下创建一个名为`celery.py`的文件,定义Celery应用实例: ```python from __future__ import absolute_import from celery import Celery app = Celery('pro_name', broker='amqp://guest@localhost//', backend='db+mysql://username:password@localhost/dbname', include=['app.tasks']) if __name__ == '__main__': app.start() ``` 其中`broker`配置为RabbitMQ的URL,`backend`配置为存储结果的数据库URL。 - **添加Celery配置到Django**: - 在项目的`settings.py`文件中添加: ```python CELERY_RESULT_BACKEND = 'db+mysql://username:password@localhost/dbname' CELERY_BROKER_URL = 'amqp://guest@localhost//' INSTALLED_APPS += ('kombu.transport.django',) ``` - 需要在`INSTALLED_APPS`中加入`kombu.transport.django`来支持Django数据库作为后端。 - **启动Worker**: - 在终端中运行: ```sh celery -A pro_name worker --loglevel=info ``` - 其中`pro_name`需要替换为你的Celery应用名称。 #### 三、任务定义与调用 ##### 3.1 创建任务 - 在应用的`tasks.py`文件中定义任务: ```python from __future__ import absolute_import from celery import shared_task @shared_task def add(x, y): return x + y ``` ##### 3.2 调用任务 - 在视图中调用Celery任务: ```python from .tasks import add result = add.delay(16, 16) print(result.get()) ``` #### 四、注意事项 - **权限配置**: 确保RabbitMQ中用户具有相应的权限,可以通过`rabbitmqctl add_user`和`rabbitmqctl set_permissions`命令配置。 - **日志管理**: 配置Celery的日志级别和路径,便于调试和问题追踪。 - **并发数量**: 根据实际业务需求调整Celery Worker的并发数量,可以通过`worker_concurrency`参数设置。 - **异常处理**: 对任务中的异常情况进行捕获和处理,确保系统的稳定性和健壮性。 通过以上步骤,可以实现基于Django框架的异步任务处理功能,提高系统的响应速度和处理能力。




















- 丶半浮生2017-03-06真的是好水的帖子~~害我注册下载~~

- 粉丝: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2021年新春网络寄语98条.docx
- 省级健康大数据中心建设规划方案培训课件.ppt
- 数控机床与编程试题题库及答案.docx
- 双代号时标网络图计算示例PPT课件.ppt
- 网络销售工作总结范文(精品).doc
- LCD1602工作原理及与51单片机的接口电路.doc
- 室内柔性接口铸铁排水管道安装施工作业指导书.doc
- 综合布线系统信道传输特性.pptx
- 用java编写工资管理系统分析.doc
- 基于单片机AT89S51的温湿度控制仪_薛玲.pdf.doc
- 基于单片机的太阳能充电器的设计.doc
- 图书馆管理系统需求分析软件工程.doc
- 2023年基于PLC的四级传送带控制系统设计设计.doc
- 基于51单片机红外计数器设计(毕业论文).docx
- 广东省省级政务信息化服务预算编制标准(软件开发服务分册).doc
- 计算机专业大学生职业生涯规划书.docx


