django部署celery
时间: 2023-09-12 19:03:37 浏览: 160
在 Django 中部署 Celery,可以按照以下步骤进行:
1. 安装 Celery
```bash
pip install celery
```
2. 配置 Celery
在 Django 项目的 settings.py 文件中添加如下配置:
```python
CELERY_BROKER_URL = 'redis://localhost:6379/0'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
```
其中,`CELERY_BROKER_URL` 和 `CELERY_RESULT_BACKEND` 是指定 Celery 使用 Redis 作为消息代理和结果存储的地址,`CELERY_ACCEPT_CONTENT`、`CELERY_TASK_SERIALIZER` 和 `CELERY_RESULT_SERIALIZER` 则是指定 Celery 的消息格式和序列化方式。
3. 创建 Celery 应用
在 Django 项目的根目录下新建一个 celery.py 文件,内容如下:
```python
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
app = Celery('myproject')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
```
其中,'myproject' 是你的 Django 项目名称。
4. 创建任务
在 Django 中创建 Celery 任务需要遵循以下规则:
- 创建一个 tasks.py 文件;
- 在 tasks.py 文件中定义任务函数;
- 在函数上方添加 @app.task 装饰器。
例如:
```python
from celery import shared_task
@shared_task
def add(x, y):
return x + y
```
5. 启动 Celery
在项目根目录下执行以下命令启动 Celery:
```bash
celery -A myproject worker -l info
```
其中,'myproject' 是你的 Django 项目名称。
6. 触发任务
在项目中调用任务的方式与普通函数调用相同。例如:
```python
from myapp.tasks import add
result = add.delay(2, 3)
```
其中,add.delay(2, 3) 返回的是一个 AsyncResult 对象,可以通过该对象的 .get() 方法获取任务结果。
阅读全文