2011-09-12 12 views
5

先週私のローカルシステムでRabbitMQとCeleryをテストした後、実動システムにRabbitMQとCeleryをセットアップしました。Rabbitmq Celeryd Celerybeatがデーモンとして実稼働中のタスクを実行していません

まだ私は約1200のタスクがまだキューに入っているので、私のタスクは生産で実行されていないと感じます。

私はcelerydcelerybeatのデーモンとWSGI wsgiモジュールへのインポートを行ったCentOS 5.4セットアップを実行します。

私は実行し、/etc/init.d/celeryd start私は/etc/init.d/celerybeat startを実行すると、私は項目がsuccessully実行されているように思わ出力により、次の応答ので

[[email protected] fundedmyprojectbyme]# /etc/init.d/celerybeat start 
Starting celerybeat... 

を取得するには、次の応答

[[email protected] myproject]# /etc/init.d/celeryd start 
celeryd-multi v2.3.1 
> Starting nodes... 
    > w1.myvm.centos01: OK 

を得ます - キューを見ると、実行される以上に多くのことが起こります。

私は同じ実行を行いますが、代わりに./manage.py celeryd./manage.py celerybeatというdjangoのmanage.pyを使用すると、すぐに処理が開始されます。

マイ/etc/default/celeryd

# Where to chdir at start. 
CELERYD_CHDIR="/www/myproject/" 

# How to call "manage.py celeryd_multi" 
CELERYD_MULTI="$CELERYD_CHDIR/manage.py celeryd_multi" 

# Extra arguments to celeryd 
CELERYD_OPTS="--time-limit=300 --concurrency=8" 

# Name of the celery config module. 
CELERY_CONFIG_MODULE="celeryconfig" 

# %n will be replaced with the nodename. 
CELERYD_LOG_FILE="/var/log/celery/%n.log" 
CELERYD_PID_FILE="/var/run/celery/%n.pid" 

# Workers should run as an unprivileged user. 
CELERYD_USER="celery" 
CELERYD_GROUP="celery" 

# Name of the projects settings module. 
export DJANGO_SETTINGS_MODULE="settings" 

/etc/default/celerybeat

# Where the Django project is. 
CELERYD_CHDIR="/www/myproject/" 

# Name of the projects settings module. 
export DJANGO_SETTINGS_MODULE="settings" 

# Path to celeryd 
CELERYD="/www/myproject/manage.py celeryd" 

# Path to celerybeat 
CELERYBEAT="/www/myproject/manage.py celerybeat" 

# Extra arguments to celerybeat 
CELERYBEAT_OPTS="--schedule=/var/run/celerybeat-schedule" 

私/etc/init.dのファイル用に/ celerydおよび/ celerybeat generic scripts

に基づいていますが、私は足りません構成の一部???

+1

としてセロリの実行はたぶん有用であり得るとあなたのinitスクリプトは/ var/log /に作成する必要があります。ログが何も作成されていない場合は、セロリがログファイルを作成するのに問題があるためです。 プロダクションシステムとローカルの違いは何ですか? あなたはそれらが同じpythonバージョンを持っていると確信していますか? –

答えて

1

私はCELERYD_MULTI変数の接​​頭辞として 'python'を追加しなければならない状況に遭遇しました。何らかの理由で

# How to call "manage.py celeryd_multi" 
CELERYD_MULTI="python $CELERYD_CHDIR/manage.py celeryd_multi" 

、私のmanage.pyスクリプトは(私はchmodの+ Xを持っていたし、私のシェバングの適切に構成されていても。)正常に実行されないでしょうあなたはそれが動作するかどうかを確認するために、これを試みる場合があります。

0

次のことを実行してみて、どのような出力がわかります参照:ログを読み取る

sh -x /etc/init.d/celeryd start 

私の場合は、いくつかのパーミッションの問題は、ユーザーのために/var/logにあった

関連する問題