django框架下celery+rabbitmq+flower完成異步任務


[轉載請注明出處:]

http://www.cnblogs.com/yukityan/p/8035787.html

 

 

環境: ubuntu16.04 64位

安裝:

  sudo apt-get install rabbitmq-server
  pip3 install celery   pip3 install flower

相關命令及其配置:
  rabbitmq:

    sudo rabbitmq-server -detached(后台啟動服務)
    sudo rabbitmqctl status(查看狀態)     sudo rabbitmqctl stop_app(停止應用)     sudo rabbitmqctl start_app(啟動應用)(可配合停止應用達到清空隊列的作用)     sudo abbitmqctl reset(清空隊列)     sudo rabbitmqctl add_user xxx xxx (添加用戶)     sudo rabbitmqctl list_users(列出用戶)

  celery:

     celery -A proj worker -l info(1.位於項目目錄, 2.項目名:proj)

  celery配置:
    

 """
     proj/celery.py(與settings.py文件位於同一文件夾)
 """
 import os
from celery import Celery from django.conf import settings # 設置運行環境 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings') # 實例化一個Celery app = Celery('proj') # 設置celery配置文件(此處為proj/settings.py) app.config_from_object('django.conf:settings') # 自動發現位於INSTALLED_APPS中app里面的task任務 app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

 

  """
      proj/__init__.py
  """
  # 確保django運行之前,celery啟動完成
  from .celery import app as celery_app

  flower:
    

 flower -A proj --port=5555 # (默認端口位5555, --port可以自定義端口)
 celery flower -A proj --address=127.0.0.1 --port=5555  celery flower -A proj --broker=amqp://guest:guest@localhost:5672// (設置broker, 此處位rabbitmq)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM