我正在使用Django 1.11
和Celery 4.0.2
。我们正在使用运行kubernetes
的PaaS(OpenShift 3( - Dockers。
我正在使用Python
映像,它只知道如何在启动时运行一个命令(并遵循退出代码 - 如果失败则重新启动(,
如何在运行Django
的同时运行celery worker
以确保其中一个的失败会杀死两个进程(worker 和 Django(
- 我正在使用
wsgi
和gevent
来开始Django
谢谢!
使用circus(supervisord是一种替代方案,但他们目前不支持python 3(
在马戏团中,您可以在项目目录中创建一个马戏团.ini。像这样:
[watcher:celery]
working_dir = /var/www/your_app
virtualenv = virtualenv
cmd = celery
args = worker --app=your_app --loglevel=DEBUG -E
[watcher:django]
working_dir = /var/www/your_app
virtualenv = virtualenv
cmd = python
args = manage.py runserver
然后你从以下两个开始:
virtualenv/bin/circusd circus.ini
它应该启动这两个进程。我认为这是为您的项目创建"开始"计划的好方法。也许你想添加芹菜节拍或使用频道(django 中的 websockets(,所以你可以在你的circus.ini
中添加一个新的观察者。这是非常动态的