django服务中如何启动celery
时间: 2024-01-28 16:05:41 浏览: 155
django框架如何集成celery进行开发
在 Django 中,启动 Celery 通常需要以下步骤:
1. 安装 Celery:
```
pip install celery
```
2. 在 Django 项目中创建一个 Celery 应用:
```
django-admin startapp celery_app
```
3. 在 Django 项目的 settings.py 文件中添加以下配置:
```
# Celery 配置
CELERY_BROKER_URL = 'amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
CELERY_TIMEZONE = 'Asia/Shanghai'
# Celery 应用程序
CELERY_APP_NAME = 'my_project.celery_app'
CELERY_IMPORTS = (
'my_project.celery_app.tasks',
)
# Celery Worker 配置
CELERYD_CONCURRENCY = 1
CELERYD_MAX_TASKS_PER_CHILD = 1
CELERYD_TASK_TIME_LIMIT = 30 * 60
```
其中,`CELERY_BROKER_URL` 和 `CELERY_RESULT_BACKEND` 配置用于指定消息队列和任务结果存储方式,这里使用了 RabbitMQ 和 Redis。`CELERY_TIMEZONE` 配置用于指定时区。`CELERY_APP_NAME` 配置用于指定 Celery 应用程序的路径。`CELERY_IMPORTS` 配置用于指定任务模块。`CELERYD_CONCURRENCY` 配置用于指定并发数。`CELERYD_MAX_TASKS_PER_CHILD` 配置用于限制每个 worker 最大执行任务数。`CELERYD_TASK_TIME_LIMIT` 配置用于限制任务的最长执行时间。
4. 在 Django 项目中创建一个 tasks.py 文件,定义 Celery 任务:
```python
from celery import shared_task
@shared_task
def add(x, y):
return x + y
```
5. 在 Django 项目中创建一个 celery.py 文件,用于初始化 Celery 应用程序:
```python
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_project.settings')
app = Celery('my_project')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
```
6. 启动 Celery Worker:
```
celery -A my_project worker -l info
```
其中,`-A` 参数用于指定 Celery 应用程序,`worker` 命令用于启动 Celery Worker,`-l` 参数用于指定日志级别。
这样,就可以在 Django 项目中启动 Celery 了。
阅读全文