Django 3.0.1 搭配 celery 4.4.2 和 redis 的部署指南

8 下载量 58 浏览量 更新于2024-09-01 收藏 75KB PDF 举报
本文主要介绍了如何使用Django 3.0.1与Celery 4.4.2结合Redis进行后台任务的部署。在开始之前,需要注意的是Celery 4.0版本要求Django版本至少为1.8,因此确保你的Django版本符合要求。在较新的Celery版本中,已经不再需要`celery-with-redis`和`django-celery`这两个额外的包,因为它们的功能已经被Celery自身集成。 在部署过程中,首先展示了Django项目的标准目录结构,包括proj作为项目根目录,其中包含`manage.py`以及名为proj的子目录,里面是项目的设置文件、URL配置等。此外,还有一个名为app1的应用目录,包含应用相关的所有模块。 为了引入Celery,需要在proj/proj目录下创建一个名为`celery.py`的文件。在这个文件中,我们需要导入必要的库,设置默认的Django环境变量,并创建Celery实例。这里的关键代码段如下: ```python from __future__ import absolute_import, unicode_literals import os from celery import Celery # 设置默认的Django设置模块为'proj.settings' os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings') app = Celery('proj') # 使用字符串表示意味着工作者不需要序列化 ``` 接下来,需要在settings.py中配置Celery,包括设置broker(消息中间件)和backend(结果存储)。对于这个例子,我们使用Redis作为这两者: ```python BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' CELERY_TIMEZONE = 'Asia/Shanghai' # 设置时区 ``` 安装Celery及其依赖后,可以通过以下命令启动Celery worker: ```bash celery -A proj worker --loglevel=info ``` 这样,你已经成功地在Django 3.0.1项目中集成了Celery 4.4.2和Redis,可以开始处理异步任务了。你可以定义各种任务函数,并通过`app.task`装饰器标记它们,然后在需要的时候调用这些任务,Celery会自动处理任务的执行和结果存储。 总结来说,这个配置使得开发者能够利用Celery的强大功能,如定时任务、异步任务和分布式工作队列,同时利用Redis作为可靠的消息传递和结果存储平台。通过这种方式,可以显著提高Django应用的性能和响应速度,特别是在处理耗时操作或并发请求时。