Diese Konfiguration ist korrekt. Ich begann Sellerie der falsche Weg :(, ohne den Projektnamen angeben. (Sellerie Arbeiter -A hockey_manager -l infoDjango 1.9 + Sellerie nicht registrierte Aufgaben
ich Django 1.9 von 1.6.5 aktualisiert haben, und ich kann nicht machen die ... Sellerie Konfigurationsarbeiten wieder
nach fast zwei Tagen Suche nach einer Lösung ich nichts arbeiten fanden
Sellerie meine Aufgaben nicht erkennt ich habe versucht, mit:
- CELERY_IMPORTS
- autodiscover_tasks
- bind = True
Abhängigkeiten
amqp==2.0.3
celery==3.1.23
Django==1.9.8
django-celery==3.1.17
kombu==3.0.35
PROJECT STRUCTURE
hockey_manager/__ init__.py
from __future__ import absolute_import
# 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
hockey_manager/celery.py
from __future__ import absolute_import
import os
from celery import Celery
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'hockey_manager.settings.common')
app = Celery('hockey_manager')
# Using a string here means the worker will not have to
# pickle the object when using Windows.
app.config_from_object('django.conf:settings')
# load task modules from all registered Django app configs.
app.autodiscover_tasks(['hockey'])
# Using a string here means the worker will not have to
# pickle the object when using Windows.
# app.config_from_object('django.conf:settings')
# app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
# Celery backend configs
app.conf.update(
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend',
)
if __name__ == '__main__':
app.start()
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
hockey_manager/Einstellungen/common.py
INSTALLED_APPS = [
...
'hockey',
'djcelery',
'kombu.transport.django',
...
]
##
# Celery
##
# BROKER_POOL_LIMIT = 3
BROKER_URL = os.environ.get('CLOUDAMQP_URL')
#BROKER_URL = 'django://'
# List of modules to import when celery starts.
CELERY_IMPORTS = ('hockey.tasks',)
#: Only add pickle to this list if your broker is secured
#: from unwanted access (see userguide/security.html)
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
Hockey/Aufgaben .py
from __future__ import absolute_import
from hockey_manager.celery import app
@app.task(name='hockey.tasks.league_schedule_results')
def league_schedule_results(schedule, statistics):
...
Fehler von Sellerie
[2016.07.23 17: 05: 46.231: ERROR/MainProcess] Received unregistrierte Aufgabe des Typs 'hockey.tasks.league_schedule_results'. Die Nachricht wurde ignoriert und verworfen.
ich auch eine deprecation Warnung von AMQP erhalten ab Version 2.0:
AMQPDeprecationWarning: Das .Transport Attribut auf der Verbindung war zugegriffen, bevor die Verbindung hergestellt wurde. Dies wird für jetzt unterstützt, aber wird in amqp 2.2.0 veraltet sein.
Since amqp 2.0 you have to explicitly call Connection.connect() before using the connection. W_FORCE_CONNECT.format(attr=attr)))
ich es bereits mit bin. Es ist in meiner Liste der Abhängigkeiten aufgeführt. Version 3.1.17 – Pietro
Ich benutze es mit Django 1.9.1 und ich brauche nicht sellery.py Datei für die Konfiguration. Ich habe dir nur einen Vorschlag gegeben, die Schritte zu versuchen, die in Link erwähnt werden. Vielleicht folgen Sie diesen Schritten, werden Sie Sellerie korrekt mit Django 1.9.1 konfigurieren –
Ich werde es versuchen und lassen Sie es wissen. Danke – Pietro