1

我正在尝试在我的 django 应用程序中使用 celery,以便我可以运行一个后台进程,将 CSV 文件导入我的模型数据库之一。这在我运行 celery worker 的本地机器上运行良好,使用:

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

如果这不起作用,您能否让我们知道您如何启动命令并发送您用于运行 celery 的任何配置(supervisord.conf 等)和脚本。

于 2013-01-22T21:00:50.463 回答
0

问题是我从 supervisord.conf 文件中删除了这一行:

directory = /home/dotcloud/current/cellhelmet

这导致它从我假设的根目录搜索,这给了我权限被拒绝错误。不过,它确实为我清除了它。

于 2013-01-25T21:28:49.103 回答