在Django应用程序中设置Celery
- 安装Celery
使用pip安装Celery:
pip install Celery
- 创建Celery实例
在Django项目的主目录下,创建一个名为celery.py的文件,并添加以下代码:
import os from celery import Celery # 设置默认Django settings模块 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings') app = Celery('your_project') # 从Django的默认配置中加载Celery配置 app.config_from_object('django.conf:settings', namespace='CELERY') # 自动发现任务文件 app.autodiscover_tasks()
其中,your_project
为你的Django项目的名称。
- 配置Celery启动参数
在Django项目的settings.py文件中,添加以下配置代码:
# Celery配置 CELERY_BROKER_URL = 'redis://localhost:6379/0' # 使用Redis作为消息代理 CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' # 把任务结果存在Redis CELERY_TIMEZONE = 'Asia/Shanghai' # 设置时区
其中,CELERY_BROKER_URL
和CELERY_RESULT_BACKEND
为使用的Redis的地址和端口号。
- 创建Celery任务
在Django应用程序中,创建一个tasks.py文件,并书写以下代码:
from celery import shared_task @shared_task def hello_world(): print('Hello World!')
该示例使用了装饰器shared_task
将该函数注册为Celery任务。
- 在视图函数中调用Celery任务
在你的Django应用程序中,创建一个视图函数,并添加以下代码:
from django.http import HttpResponse from your_app.tasks import hello_world def index(request): hello_world.delay() # 调用Celery任务 return HttpResponse('Hello, Celery!')
当我们请求该视图函数时,会异步调用Celery任务hello_world()
。
- 启动Celery Worker
在Django项目的根目录下,运行以下代码来启动Celery Worker:
celery -A your_project worker -l info
其中,your_project
为你的Django项目名称。
至此,已经完成了在Django应用程序中设置Celery的步骤。
相关文章