Сельдерей в virtualenv с супервайзером - PullRequest
0 голосов
/ 05 сентября 2018

установка супервизора в Linux Ubuntu с python2.7

virtualenv : python3.6 + Django2.0 + сельдерей4.2

это файл celery.py:

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'savemoney.settings')
app = Celery('savemoney')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

init file:

from __future__ import absolute_import, unicode_literals

from .celery import app as celery_app

__all__ = ['celery_app']

Мой рабочий в сельдерее работает хорошо, но когда я запускаю Celery в виртуальном режиме с супервизором:

  File "/path/env/mysite/mysite/__init__.py", line 5, in <module>
    from .celery import app as celery_app
  File "/path/env/mysite/mysite/celery.py", line 7, in <module>
    app.config_from_object('django.conf:settings', namespace='CELERY')
TypeError: config_from_object() got an unexpected keyword argument 'namespace'

Моя настройка сельдерея:

[program:celery.worker] 

directory=/path/env/mysite/

command=/path/env/mysite/celery -A mysite worker -l info
user=root

numprocs=1          
autostart=true      
autorestart=true    
stopsignal=INT
stdout_logfile=/path/env/mysite/celery_worker.log 
stdout_logfile_maxbytes=10MB  
stdout_logfile_backups=10     
 redirect_stderr=false         
stderr_logfile=/path/env/mysite/celery_worker_err.log 
stderr_logfile_maxbytes=10MB 
stderr_logfile_backups=10

Я попробовал:

1.environment

environment=PATH="/path/env/bin",VIRTUAL_ENV="/path/env/mysite/",PYTHONPATH="/path/env/lib/python:/path/env/lib/python3.6/site-packages"

2.команда full_path

command=/path/env/mysite/celery -A mysite worker -l info

супервизор> статус

supervisor> status
celery.work                      BACKOFF   can't find command '/path/env/mysite/celery'

Я ссылаюсь на чей-то путь вот так:

command=/path/env/mysite/bin/celery -A mysite worker -l info

но у моего проекта нет каталога "bin"

Я пытался:

command=/path/env/bin/celery -A mysite worker -l info

ошибка:

ModuleNotFoundError: No module named 'mysite'

1 Ответ

0 голосов
/ 07 сентября 2018

Эта проблема - использование сельдерея 4.2 с супервизором

Я решил проблему с помощью сельдерея 3.1.16

...