[轉載請注明出處:]
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)