主管目录未传播到Celery程序

2024-10-01 05:01:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Django应用程序(名为pcycler),需要与celeri一起运行。我正试图与主管一起在生产中部署这个。在

运行时出错:

supervisorctl start celery

这给了我:

celery: ERROR (abnormal termination)

这是我的芹菜.conf文件,它包含在主管.conf开始时。在

[program:celery]
command=/webapps/pcyclerenv/bin/celery -A pcycler worker -l info 

directory=/webapps/pcyclerenv/pcycler
user=pcycleruser
numprocs=1
stdout_logfile=/webapps/pcyclerenv/logs/celeryd_stdout.log
stderr_logfile=/webapps/pcyclerenv/logs/celeryd_stderr.log
redirect_stderr=false
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=600
killasgroup=true
priority=998

芹菜的内容物_标准日志是:

^{pr2}$

很自然,我决定自己运行这个程序,看看是否可以重复这个错误:

pcycleruser@raspberrypi:/webapps/pcyclerenv/pcycler$ pwd
/webapps/pcyclerenv/pcycler

pcycleruser@raspberrypi:/webapps/pcyclerenv/pcycler$ /webapps/pcyclerenv/bin/celery -A pcycler worker -l info

(... text and pickle deprecation warnings ...)

[2014-05-23 14:52:36,053: WARNING/MainProcess] /webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/fixups/django.py:233: UserWarning: Using settings.DEBUG leads to a memory leak, never use this setting in production environments!
  warnings.warn('Using settings.DEBUG leads to a memory leak, never '

[2014-05-23 14:52:36,066: WARNING/MainProcess] celery@raspberrypi ready.

这样就行了。但是,当我在错误的目录中时,例如:

pcycleruser@raspberrypi:/webapps/pcyclerenv/pcycler$ cd ..

pcycleruser@raspberrypi:/webapps/pcyclerenv$ pwd
/webapps/pcyclerenv

pcycleruser@raspberrypi:/webapps/pcyclerenv$ /webapps/pcyclerenv/bin/celery -A pcycler worker -l info

Traceback (most recent call last):
  File "/webapps/pcyclerenv/bin/celery", line 11, in <module>
    sys.exit(main())
  File "/webapps/pcyclerenv/local/lib/python2.7/site-packages/celery/__main__.py", line 30, in main
    main()

(... exact same error as above ...)

ImportError: No module named pcycler

我得到的错误与错误日志中的完全相同!这导致我假设当我在supervisor中运行时,目录没有被正确地更改。在

tldr:为什么目录不在我的主管.conf在我使用supervisorctl运行命令时被应用?在


Tags: infotruebinmainconf错误stderr主管
1条回答
网友
1楼 · 发布于 2024-10-01 05:01:33

发现了错误,它真的是愚蠢的。在

Supervisor conf文件是特定于订单的,因此请执行以下操作:

[program:celery]
directory=/webapps/pcyclerenv/pcycler
command=/webapps/pcyclerenv/bin/celery -A pcycler worker -l info 
(... the rest ..)

解决了我的问题。在

相关问题 更多 >