【Django】 集成 Celery 与执行结果监控

Django 集成 celery 与执行结果监控

celery 架构图

一、搭建 Django 项目

  • 环境模块安装
     
      
    pip install django==3.2
    pip install celery
    pip install redis
    # window 环境下需要安装eventlet
    pip install eventlet
  • 创建 django 项目
     
      
    django-admin startproject django_celery
  • 修改 settings 配置文件
     
      
    # 1-修改代码文件,程序自动重启
    # 2-Django程序出现异常时,向前端显示详细的错误追踪信息
    DEBUG = True
    # 允许访问的主机
    ALLOWED_HOSTS = ['*']
    # 语言
    # LANGUAGE_CODE = 'en-us'
    LANGUAGE_CODE = 'zh-hans'
    # 时区
    # TIME_ZONE = 'UTC'
    TIME_ZONE = 'Asia/Shanghai'
  • 配置路由与视图并测试项目
    • 在工程同名项目文件夹中创建 views 视图文件,并创建视图函数

       
          
      # django_celery/django_celery/views.py
      from django.http import HttpResponse
      def test_celery(request):
      return HttpResponse('邮件发送成功')
    • urls文件中设置路由映射

       
          
      # django_celery/django_celery/urls.py
      from django.contrib import admin
      from django.urls import path
      from . import views
      urlpatterns = [
      path('admin/', admin.site.urls),
      path('celery/', views.test_celery)
      ]
    • 运行测试

      • 启动项目

         
              
        python manage.py runserver 8080
      • 访问测试

         
              
        http://127.0.0.1:8080/celery/

二、在项目中集成 celery

Celery官方参考文档

  • 版本说明
     
      
    Celery 5.3.x支持Django 2.2 LTS或更新版本
  • 在工程同名子应用中创建 celery.py 模块,定义 celery 实例
     
      
    # django_celery\django_celery\celery.py
    import os
    from celery import Celery
    # 1. 导入django配置; 后续便于使用django组件功能
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_celery.settings')
    # 2. 实例化celery对象
    app = Celery('django_celery')
    # 3. 从django配置文件中导入celery相关的配置; 如果添加 namespace='CELERY' 参数,则celery的配置参数需要添加 "CELERY_" 的前缀
    app.config_from_object('django.conf:settings')
    # 4. 在django所有应用中自动搜索 tasks.py 文件, 作为任务文件
    app.autodiscover_tasks()
  • django 项目的配置文件 settings 中配置 celery 相关配置
     
      
    # ---------------- celery 相关配置 ----------------------
    # Broker配置,使用Redis作为消息中间件
    BROKER_URL = 'redis://127.0.0.1:6379/1'
    # BACKEND配置,使用Redis作为结果仓库
    RESULT_BACKEND = 're
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值