• 在django中使用(配置)celery


      通俗来说,celery是python的一个异步队列服务器。在我们日常web应用中,当请求一个后端接口的时候,都是等待该接口的业务完成后再返回。那么如果这个接口执行的任务很漫长,就可能造成服务阻塞甚至http请求超时。那么如果web接口要执行很长时间的任务,又要保证即时给前端响应,就可以将很耗时间的任务交付给异步队列服务器,该任务会在异步队列中自动执行完成。(一般来说不需要立即给用户返回的接口都可以放到异步队列服务器中)

     

    Celery for djanjo的安装方式:

      pip install celery

      pip install django-celery

      pip install celery-with-redis

      pip install redis==2.10.6

     

    Celery在django中的配置

    在settings中进行如下配置:

    import djcelery

    djcelery.setup_loader()

    在INSTALLED_APPS中加上 [

        'djcelery'

    ]

     

    BROKER_URL = 'redis://localhost:6379/2'
    CELERY_RESULT_BACKEND = 'redis://localhost:6379'
    CELERY_IMPORTS = ('app.tasks.task')

    Celery方法定义:

    在指定位置创建py,如在应用app下创建task.task.py

    import time

    from celery import task

    @task

    def sayhello():

      print('ready......')

      time.sleep(2)

      print(111)

    Celery 异步函数在视图中的使用

    from app.tasks.task import sayhello

    class Index(View):

      TEMPLATE = 'index.html'

      

      def get(self,request):

        sayhello.delay()

        return render(request,self.TEMPLATE)

    Celery 与 python服务启动方法

    首次配置完成后执行sql同步方法

    python manage.py makemigrations

    python manage.py migrate

    启动服务:

    先执行 python manage.py runserver

    再执行python3 manage.py celery worker -c 4 --loglevel=info

    ( Ps确保你的电脑已经安装了redis并且启动了redis-server )

     

  • 相关阅读:
    SQLServer之数据库行锁
    SQLServer之锁定数据库表
    SQLServer之锁简介
    SQLServer之删除函数
    CMD命令行合并多个txt文件到一个txt文件
    CMD命令搜索有某文本文件的内容
    Oracle表结构修改触发视图无法正常使用问题
    java中final关键字
    SQL Server Url Decode函数
    使用SQL SERVER PIVOT实现行列转置
  • 原文地址:https://www.cnblogs.com/xiaohaodeboke/p/12679502.html
Copyright © 2020-2023  润新知