1

djangoアプリケーションでセロリを使用して、CSVファイルをモデルデータベースの1つにインポートするバックグラウンドプロセスを実行できるようにしようとしています。これは、以下を使用してセロリワーカーを実行しているローカルマシンで正常に機能します。

python manage.py celery worker --loglevel=info

およびRabbitMQ

rabbitmq-server

これは、dotcloudにプッシュしたときに受け取るエラーです。

workers.0    celery.platforms.LockFailed: [Errno 13] Permission denied: '/celeryev.pid'

編集:

supervisord.conf

[program:djcelery]
command = /home/dotcloud/env/bin/python /home/dotcloud/current/cellhelmet/manage.py celeryd -E -l info -c 2
stderr_logfile = /var/log/supervisor/%(program_name)s_error.log
stdout_logfile = /var/log/supervisor/%(program_name)s.log

[program:celerycam]
command = /home/dotcloud/env/bin/python /home/dotcloud/current/cellhelmet/manage.py     celerycam
stderr_logfile = /var/log/supervisor/%(program_name)s_error.log
stdout_logfile = /var/log/supervisor/%(program_name)s.log
4

2 に答える 2

1

pid ファイルを / に書き込もうとしているようです。これは、許可が拒否される理由を理解しています。

の値には何がありますCELERYD_PID_FILEか?

これらのオプションのいずれかに設定してみてください

CELERYD_PID_FILE="/var/log/supervisor/%n.pid" CELERYD_PID_FILE="/home/dotcloud/"

設定オプションの詳細については、http: //ask.github.com/celery/cookbook/daemonizing.htmlを参照してください。

それでもうまくいかない場合は、コマンドの開始方法をお知らせください。また、セロリを実行するために使用している構成 (supervisord.conf など) とスクリプトも一緒にお送りください。

于 2013-01-22T21:00:50.463 に答える
0

問題は、supervisord.conf ファイルから次の行を削除したことです。

directory = /home/dotcloud/current/cellhelmet

そのため、ルートディレクトリから検索するようになり、アクセス許可が拒否されたというエラーが発生したと想定しています。それは確かに私のためにそれをクリアしました。

于 2013-01-25T21:28:49.103 に答える