Django中Celery的使用,本章主机要介绍celery定时任务部署多台主机,不同主机定时任务不同,统一通过django后台管理
环境:django=1.9.8 celery=3.1.23 版本 mysql
1)以两台主机为例,通过django创建2个app,名称为net_celery,local_celery,它们的task不同
2)net_celery部署在一台主机,settings配置
worker程序启动指定hostname和queue
1 | /usr/bin/python /monitor/demo_web/manage.py celery worker --hostname=192.168.137.11 --pidfile=/tmp/django_celeryworker.pid --loglevel=INFO --queues=net |
---|
admin页面配置,需要将queue、exchange指定
3)local_celery部署在一台主机,settings配置
worker程序启动指定hostname和queue,注意与上面一台不一样
1 | /usr/bin/python /monitor/demo_web/manage.py celery worker --hostname=192.168.137.12 --pidfile=/tmp/django_celeryworker.pid --loglevel=INFO --queues=local |
---|
admin页面配置,需要将queue、exchange指定
4)启动celery beat和celerycam
备注:两个进程只需要在一台主机上启动,不要启动多,如果启动多个,会出现同一个task多次执行。
1 | /usr/bin/python /monitor/demot_web/manage.py celery beat --pidfile=/tmp/django_celerybeat.pid --loglevel=INFO |
---|
1 | /usr/bin/python /home/demo_web/manage.py celerycam --loglevel=INFO --pidfile=/tmp/django_celerycam.pid |
---|