15 django ubuntu upstart celery django-celery
我真的很喜欢使用暴发户.我目前有很多新手工作,可以在许多版本中运行不同的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)
dge*_*gel 16
您可能需要添加更多配置,但这是我为了启动django-celery作为virtualenv中的特定用户而编写的新手脚本:
start on started mysql
stop on stopping mysql
exec su -s /bin/sh -c 'exec "$0" "$@"' user -- /home/user/project/venv/bin/python /home/user/project/django_project/manage.py celeryd
respawn
Run Code Online (Sandbox Code Playgroud)
这对我很有效.
我知道它看起来很难看,但根据这个超级用户的回答,它似乎是以非特权用户身份运行新手工作的当前"正确"技术.
我认为我必须做更多工作才能让它在virtualenv中工作,但是在virtualenv中调用python二进制文件就足够了.
归档时间: |
|
查看次数: |
8781 次 |
最近记录: |