我收到“错误(生成错误)”消息;当我尝试启动我的celery / supervisor实例时
我已经经历过如何使用主管在我的django生产服务器上使用芹菜。
但是,当我尝试使用 sudo administratorctl启动超级用户启动超级用户
时,它会返回:
However when I try to start supervisor with sudo supervisorctl start app-celery
- it returns:
app-celery: ERROR (spawn error)
这是我的配置 /etc/supervisor/conf.d/app-celery.conf
:
[program:app-celery]
command=/home/zorgan/app/env/bin/celery worker -A draft1 --loglevel=INFO
directory=/home/zorgan/app/draft1
numprocs=1
stdout_logfile=/var/log/supervisor/celery.log
stderr_logfile=/var/log/supervisor/celery.log
autostart=true
autorestart=true
startsecs=10
; Need to wait for currently executing tasks to finish at shutdown.
; Increase this if you have very long running tasks.
stopwaitsecs = 600
stopasgroup=true
; Set Celery priority higher than default (999)
; so, if rabbitmq is supervised, it will start first.
priority=1000
我已经按照教程逐字逐句地介绍了-我没有知道为什么它不起作用。我检查过我去 celery
的路径是 / home / zorgan / app / env / bin / celery
,并且我的 celery.py
和 tasks.py
在 / home / zorgan / app / draft1中
。以及 / home / zorgan / app / draft1
中的初始化文件已更改为:
I've followed the tutorial word for word - I don't know why it is not working. I've checked that my path to celery
is /home/zorgan/app/env/bin/celery
, and my celery.py
and tasks.py
is in /home/zorgan/app/draft1
. As well as the init file in /home/zorgan/app/draft1
being changed to:
from __future__ import absolute_import, unicode_literals
#This will make sure the app is always imported when
#Django starts so that shared_task will use this app.
from .celery import app as celery_app
__all__ = ['celery_app']
这是我的celery.py:
Here's my celery.py:
import os
from celery import Celery
from celery.schedules import crontab
from .settings import CELERY_BROKER_URL #CELERY_BROKER_URL = 'amqp://174.138.62.649' (changed the number for privacy reasons)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'draft1.settings')
app = Celery("draft1", broker=CELERY_BROKER_URL)
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
这里是否有危险信号?因为我的 celery.log
文件中也出现此错误:
Are there any red flags here? Because I'm also getting this error in my celery.log
file:
File "/home/zorgan/app/env/lib/python3.5/site-packages/kombu/utils/imports.py", line 56, in symbol_by_name
module = imp(module_name, package=package, **kwargs)
File "/home/zorgan/app/env/lib/python3.5/site-packages/celery/utils/imports.py", line 101, in import_from_cwd
return imp(module, package=package)
File "/home/zorgan/app/env/lib/python3.5/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 986, in _gcd_import
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked
ImportError: No module named 'draft1'
但我不确定是否相关。这是我的 supervisord.log
的摘要:
but I'm not sure if that's related. Here a snippet of my supervisord.log
:
2018-04-25 03:15:07,665 INFO spawned: 'app-celery' with pid 24296
2018-04-25 03:15:08,050 INFO exited: app-celery (exit status 1; not expected)
2018-04-25 03:15:09,052 INFO gave up: app-celery entered FATAL state, too many start retries too quickly
2018-04-25 03:15:09,815 INFO spawned: 'app-celery' with pid 24302
2018-04-25 03:15:10,221 INFO exited: app-celery (exit status 1; not expected)
2018-04-25 03:15:11,231 INFO spawned: 'app-celery' with pid 24309
2018-04-25 03:15:11,646 INFO exited: app-celery (exit status 1; not expected)
2018-04-25 03:15:13,650 INFO spawned: 'app-celery' with pid 24313
2018-04-25 03:15:14,068 INFO exited: app-celery (exit status 1; not expected)
2018-04-25 03:15:17,074 INFO spawned: 'app-celery' with pid 24317
2018-04-25 03:15:17,505 INFO exited: app-celery (exit status 1; not expected)
任何想法问题是?
编辑:
项目树:
home / zorgan / app / draft1
... ...
manage.py celery.py
env tasks.py
[program:app-celery]
[program:app-celery]
command = / home / zorgan / app / env / bin / celery worker -A draft1 --loglevel = INFO
command=/home/zorgan/app/env/bin/celery worker -A draft1 --loglevel=INFO
directory = / home / zorgan / app
numprocs = 1
numprocs=1
stdout_logfile = / var / log / supervisor / celery.log
stdout_logfile=/var/log/supervisor/celery.log
stderr_logfile = / var / log / supervisor / celery.log
stderr_logfile=/var/log/supervisor/celery.log
自动启动= true
autostart=true
autorestart = true
autorestart=true
startsecs = 10
startsecs=10
;需要等待当前正在执行的任务在关闭时完成。
;如果您的任务运行时间很长,请增加此值。
; Need to wait for currently executing tasks to finish at shutdown. ; Increase this if you have very long running tasks.
stopwaitsecs = 600
stopwaitsecs = 600
stopasgroup = true
stopasgroup=true
;将Celery优先级设置为高于默认优先级(999)
;因此,如果对rabbitmq进行监督,它将首先开始。
; Set Celery priority higher than default (999) ; so, if rabbitmq is supervised, it will start first.
priority = 1000
priority=1000
为目录
输入了错误的路径,该目录将是项目的主目录,而不是设置文件的目录