我真的很喜欢使用暴发户.我目前有很多新手工作,可以在许多版本中运行不同的gunicorn实例.但是,我在互联网上找到的芹菜新贵脚本的2-3个例子对我不起作用.
因此,使用以下变量,如何编写Upstart作业以在virtualenv中运行django-celery.
Django项目之路:
/srv/projects/django_project
Run Code Online (Sandbox Code Playgroud)
这个项目的virtualenv的路径:
/srv/environments/django_project
Run Code Online (Sandbox Code Playgroud)
芹菜设置的路径是Django项目设置文件(django-celery):
/srv/projects/django_project/settings.py
Run Code Online (Sandbox Code Playgroud)
此Celery实例的日志文件的路径:
/srv/logs/celery.log
Run Code Online (Sandbox Code Playgroud)
对于此虚拟环境,用户:
iamtheuser
Run Code Online (Sandbox Code Playgroud)
和小组:
www-data
Run Code Online (Sandbox Code Playgroud)
我想用celerybeat运行Celery Daemon,因此,我要传递给django-admin.py(或manage.py)的命令是:
python manage.py celeryd -B
Run Code Online (Sandbox Code Playgroud)
如果脚本在gunicorn作业开始后启动,那将会更好,并且当gunicorn作业停止时停止.让我们说这个文件是:
/etc/init/gunicorn.conf
Run Code Online (Sandbox Code Playgroud) 我试图在具有systemd / systemctl的Centos 7上运行celery守护程序。它不起作用。
有什么建议解决此问题吗?
这是我的守护程序默认配置:
CELERYD_NODES="localhost.localdomain"
CELERY_BIN="/tmp/myapp/venv/bin/celery"
CELERY_APP="pipeline"
CELERYD_OPTS="--broker=amqp://192.168.168.111/"
CELERYD_LOG_LEVEL="INFO"
CELERYD_CHDIR="/tmp/myapp"
CELERYD_USER="root"
Run Code Online (Sandbox Code Playgroud)
注意:我使用以下命令启动守护进程
sudo /etc/init.d/celeryd start
Run Code Online (Sandbox Code Playgroud)
我从以下网址获得了celery守护程序脚本:https : //raw.githubusercontent.com/celery/celery/3.1/extra/generic-init.d/celeryd
我还尝试了以下方法之一:https : //raw.githubusercontent.com/celery/celery/3.1/extra/generic-init.d/celeryd, 但这在尝试启动守护程序时向我显示了一个错误:
systemd[1]: Starting LSB: celery task worker daemon...
celeryd[19924]: basename: missing operand
celeryd[19924]: Try 'basename --help' for more information.
celeryd[19924]: Starting : /etc/rc.d/init.d/celeryd: line 193: multi: command not found
celeryd[19924]: [FAILED]
systemd[1]: celeryd.service: control process exited, code=exited status=1
systemd[1]: Failed to start LSB: celery task worker daemon.
systemd[1]: Unit celeryd.service …Run Code Online (Sandbox Code Playgroud)