环境准备
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:123456@127.0.0.1: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
异步执行
上面环境搭建好了,就可以异步执行了
项目列表->选择项目->执行->执行方式->异步执行