zoukankan      html  css  js  c++  java
  • 异步任务----Django-celery

    推荐版本:

      Django==2.2.6
      django-celery==3.3.1
      Django=redis==4.11.0
      redis==2.10.6
      celery==3.1.26post2
    

    settings.py:

      import djcelery
    
      djcelery.setup_loader()
      BROKER_URL = 'redis://127.0.0.1:6379/2'
    
      INSTALLED_APPS = [
            "djcelery",
      ]
    

    创建celery需要的数据表

      python manage.py migrate
      如果失败的话可以试试
      #python manage.py syncdb
    

    然后在Django的APP下面在创建tasks.py

    tasks.py:

      from celery import task
    
      from celery import task
      import time
    
      @task
      def add(x, y):
          result = x + y
          time.sleep(5)   # 可有可无,睡眠五秒
          # print(f'{add.__name__}结果为:', result)
          return result
    

    Views.py:

      from rest_framework.views import APIView
      from rest_framework.response import Response
      from app01.tasks import add
    
    
      class TestCeleryView(APIView):
          def get(self, request):
    
              add.delay(5, 10)  # delay是注册为celery异步任务的关键点
    
              return Response({"code": 200})
    

    启动celery:

      python manage.py celery worker --loglevel=infov
    
      如果报错不让超级管理员来启动,在settings.py加入以下配置
      from celery import Celery, platforms
      platforms.C_FORCE_ROOT = True
  • 相关阅读:
    url参数的获取
    ajax变量作用域的问题
    滚动条自适应宽度的问题
    js发送验证码(倒计时)
    字符串
    值类型和引用类型
    面向对象
    进程
    UI事件
    鼠标跟随
  • 原文地址:https://www.cnblogs.com/kaka007/p/13925745.html
Copyright © 2011-2022 走看看