2017-03-05 3 views
0

Ich benutze Django 1.9, Python 2.7 und Heroku.Install Sellerie & Redis mit Heroku

Sellerie 3 & Redis funktionierten gut, bis ich zu Sellery 4.0.2 wechselte und die Konfiguration änderte.

Heroku Protokolle zeigt die folgende Meldung:

2017-03-05T16:34:22.076383+00:00 app[worker.1]: Unknown command: 'celery' 

Hier sind meine Konfigurationen:

__init.py__

from __future__ import absolute_import, unicode_literals 
from .celery import app as celery_app 
__all__ = ['celery_app'] 

settings.py

settings_remote.py

from __future__ import unicode_literals, absolute_import 
import os 
CELERY_BROKER_URL = os.environ['REDIS_URL'] 
CELERY_ACCEPT_CONTENT = ['json'] 
CELERY_TASK_SERIALIZER = 'json' 
CELERY_RESULT_SERIALIZER = 'json' 

celery.py

from __future__ import absolute_import, unicode_literals 
import os 
from celery import Celery 
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'terradiem.settings') 
from django.conf import settings 
app = Celery('terradiem') 
app.config_from_object('django.conf:settings', namespace='CELERY') 
app.autodiscover_tasks() 
@app.task(bind=True) 
def debug_task(self): 
    print('Request: {0!r}'.format(self.request)) 

procfile

web: gunicorn terradiem.wsgi --log-file - 
worker: python manage.py celery worker --beat 

. env

REDIS_URL=redis:// 

Irgendwelche Hinweise?

Antwort

0

Ich hatte gestern ein Problem mit Sellerie und verbrachte Stunden damit, es loszuwerden. Am Ende war das Problem, dass ich die Sellerie-Datei meines Projekts 'sellery.py' nannte.

Also in meinen anderen Dateien, wenn ich die Sellerie-Bibliothek wie so verwiesen:

from celery import Celery 

Es wurde in meinem Projekt Sellerie-Datei für die Sellerie-Klasse und die Erhöhung eines Fehlers suchen. Lösung für mich war, die Datei in _celery.py umzubenennen.

Überprüfen Sie auch, ob Sellerie auf Ihrem Server installiert ist.

Ich bezweifle, das ist dein Problem, aber musste es vorschlagen!

+0

Ich habe versucht, Sie Vorschlag, aber es scheint nicht zu funktionieren. Trotzdem danke. –

0

In Ihrem procfile ändern:

worker: python manage.py celery worker --beat 

für:

worker: celery -A [nameOfYourApp] worker --beat 

und setzen Sie den Namen Ihres django Projekt in [nameOfYourApp].

Es antwortet Unknown command: 'celery' weil manage.py keinen Befehlsnamen wie diesen hat.

Verwandte Themen