2013-03-21 6 views
7

私はdjceleryとスーパーバイザで作業しています。 私はスーパーバイザーとセロリを走らせていましたが、セロリーマルチに変更する必要があることが分かったら、すべてうまく動作しました。 ターミナルでceleryd_multiを実行すると、動作しますが、常にバックグラウンドで実行されます。たとえば、問題が発生している場所でフォアグラウンドでコマンドを実行する必要があります。スーパーバイザでceleryd_multiを実行しています

これは私のcelery.ini次のとおりです。ここで

[program:celery_{{ division }}] 
command = {{ virtualenv_bin_dir }}/python manage.py celeryd_multi start default mailchimp -c:mailchimp 3 -c:default 5 --loglevel=info --logfile={{ log_dir }}/celery/%n.log --pidfile={{ run_dir }}/celery/%n.pid --schedule=/home/celery/celerybeat-schedule --settings={{ django_settings_python_path }} 
autorestart = false 
autostart = false 
directory = {{ repo_dir }}/{{ division }} 
user=celery 
numprocs = 1 
redirect_stderr = True 
stopwaitsecs = 10 
startsecs = 10 
priority = 997 
startretries = 3 

は私が罰金

python manage.py celeryd_multi start default mailchimp -c:mailchimp 3 -c:default 5 --loglevel=info --logfile=/var/log/celery/%n.log --pidfile=/var/log/celery/%n.pid --schedule=/home/celery/celerybeat-schedule --settings=lively.settings_gunicorn

答えて

7

Reply from the main developer of celeryを働くターミナル(2012年3月23日)に入れコマンドです:

私は複数のceleryd instanを起動する簡単な解決策を認識していませんces スーパーバイザーを使用しますが、それぞれに1つの設定を常に使用できます。たぶん誰か 他にはそれのための解決策があります。

ジェネリック-init.dディレクトリ/ celerydスクリプトは、労働者の名前のリストを、複数のサーバを起動するcelerydマルチ使用 、あなたは数を設定するCELERYD_NODES /etc/init.d/celeryd変数を使用することができ、または 。 は、私はそれは はおそらく、監視するかしない結果のPIDのかを知る必要があるだろうとして、supervisordがcelerydマルチで動作するように作ることができるかどうかはわかりません(多分supervisord プラグインが書かれるだろうか?)

- Solem

を掲載し
0

daemontoolsのバックグラウンド・プロセスがフォアグラウンドで「滞在」にするために設計されたユーティリティと呼ばれるfghackを持っています。

pidsigはおそらく似ていますが、プロキシ信号:

http://permalink.gmane.org/gmane.comp.sysutils.supervision.general/2010 

https://github.com/chexum/pidsig/blob/master/pidsig.c 

私は両方の基本的バックグラウンドに子プロセスが終了するのを待つのラッパーであると信じています。

関連する問題