私はDjangoアプリのタスクを実行するためにセロリとRedisキューを使用しようとしています。 Supervisordはapt-get
経由でホストにインストールされますが、セロリは私のシステム上の特定のvirtualenvにあり、 `pip経由でインストールされます。virtualenv(Djangoアプリ)からセロリをホストから実行する
その結果、celery
コマンドをsupervisord経由で実行できないようです。私がvirtualenvの中からそれを実行すると、それはうまく動作しますが、それ以外ではうまく動作しません。どのように私は現在のセットアップの下で実行するように取得するのですか?解決策は、virtualenvの代わりに、celery
をapt-get経由でインストールするだけですか?お知らせ下さい。
/etc/supervisor/conf.d内部マイcelery.confは次のとおりです。
[program:celery]
command=/home/mhb11/.virtualenvs/myenv/local/lib/python2.7/site-packages/celery/bin/celery -A /etc/supervisor/conf.d/celery.conf -l info
directory = /home/mhb11/somefolder/myproject
environment=PATH="/home/mhb11/.virtualenvs/myenv/bin",VIRTUAL_ENV="/home/mhb11/.virtualenvs/myenv",PYTHONPATH="/home/mhb11/.virtualenvs/myenv/lib/python2.7:/home/mhb11/.virtualenvs/myenv/lib/python2.7/site-packages"
user=mhb11
numprocs=1
stdout_logfile = /etc/supervisor/logs/celery-worker.log
stderr_logfile = /etc/supervisor/logs/celery-worker.log
autostart = true
autorestart = true
startsecs=10
stopwaitsecs = 600
killasgroup = true
priority = 998
そして、私のDjangoプロジェクトのためのフォルダ構造は次のとおりです。
/home/mhb11/somefolder/myproject
├── myproject
│ ├── celery.py # The Celery app file
│ ├── __init__.py # The project module file (modified)
│ ├── settings.py # Including Celery settings
│ ├── urls.py
│ └── wsgi.py
├── manage.py
├── celerybeat-schedule
└── myapp
├── __init__.py
├── models.py
├── tasks.py # File containing tasks for this app
├── tests.py
└── views.py
私が行う場合status
supervisorctlで確認すると、command
に致命的なエラーが発生します。私はcelery.confで実行しようとしています。助けて!
p.s.ユーザーmhb11
にはroot権限がないことに注意してください。また、/etc/supervisor/logs/celery-worker.log
は空です。そしてsupervisord.log
の中に私が見る関連するエラーはINFO spawnerr: can't find command '/home/mhb11/.virtualenvs/redditpk/local/lib/python2.7/site-packages/celery/bin/celery'
です。
'/home/mhb11/.virtualenvs/myenv/local/lib/python2.7/site-packages/celery/bin/celery -A /etc/supervisor/conf.d/celery.confを実行するとどうなりますか?ターミナルから-l info'? –
'/ etc/supervisor/logs/celery-worker.log'には何がありますか? '/ var/log/supervisord.log'や'/var/log/supervisor/supervisord.log'には何がありますか? –
@MuhammadTahir: '/ etc/supervisor/logs/celery-worker.log'は空です。 'supervisord.log'の中に表示される関連するエラーは' INFO spawnerr:コマンドを見つけることができません '/home/mhb11/.virtualenvs/redditpk/local/lib/python2.7/site-packages/celery/bin/celery'です。 '。 –