環境準備
cententos 7.6
django 2.0.3
celery 3.1.26.post2
django-celery 3.2.2
flower 0.9.2
rabbitmq3.8.0
httprunner 1.5.8
rabbitmq環境
使用docker搭建rabbitmq環境,選擇帶management的安裝包,自帶web界面
# 拉取鏡像
docker pull rabbitmq:3.8.0-management
# 啓動容器
docker run -d --name rabbitmq3.8 -p 5672:5672 -p 15672:15672 -v $PWD/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 rabbitmq3.8.0-management
啓動worker
1.安裝celery和django-celery
pip install celery==3.1.26.post2
pip install django-celery==3.2.2
2.settings配置
打開settings.py文件,修改BROKER_URL
BROKER_URL = 'amqp://admin:[email protected]:5672//'
*如果需要DEBUG,dev路徑也需要配置上
配置說明:
- admin:123456 是搭建rabbitmq環境時的RABBITMQ_DEFAULT_USER和RABBITMQ_DEFAULT_PASS
- 192.168.1.x 是搭建rabbitmq服務器的ip地址
- 5672 是rabbitmq服務啓動的端口
3.啓動worker
在django根目錄下,即manage.py文件所在目錄,執行以下命令啓動worker進程
python3 manage.py celery -A HttpRunnerManager worker --loglevel=info
出現如下界面,worker啓動成功
或者後臺啓動worker
nohup python manage.py celery -A HttpRunnerManager worker --loglevel=info >worker.out 2>&1 &
啓動celery
執行以下命令,啓動celery ,啓動定時任務監聽
python manage.py celery beat --loglevel=info
掛後臺
nohup python manage.py celery beat --loglevel=info >celery.out 2>&1 &
啓動flower
1.安裝flower
pip install flower==0.9.2
2.啓動flower
celery flower --broker=amqp://admin:123456@<rabbitmq服務搭建ip>:5672//
掛後臺
nohup celery flower --broker=amqp//admin:123456@localhost:5672// >djocelery.out 2>&1 &
3.訪問flower頁面
在瀏覽器中輸入:<rabbitmq服務搭建ip>:5555
異步執行
上面環境搭建好了,就可以異步執行了
項目列表->選擇項目->執行->執行方式->異步執行