2010-10-06 18 views
1

Je viens d'installer et configuré Céleri avec RabbitMQ pour un projet Django et j'avais une des tâches en cours d'exécution problème quand je les importaient comme ceci:Pourquoi dois-je mettre le nom du projet lors de l'importation de tâches lors de l'utilisation de Django avec Celery?

from someapp.tasks import SomeTask 

Il a travaillé quand j'ai ajouté le nom du projet:

from myproject.someapp.tasks import SomeTask 

J'ai essayé d'ajouter ceci dans le fichier settings.py mais il ne change rien:

CELERY_IMPORTS = ("myproject.someapp.tasks",) 

Je vais bien de laisser le nom du projet sur la ligne d'importation, car cela fonctionne, mais j'aimerais savoir s'il y a un moyen de contourner la question ou pourquoi cela doit être le cas.

Répondre

1

Il est probablement parce que vous avez

INSTALLED_APPS = ("myproject.someapp",) 

Au lieu de cela, vous devez ajouter le répertoire contenant les applications sur le chemin de Python (le projet dans ce cas), et tout simplement faire

INSTALLED_APPS = ("someapp",) 

à mon humble avis ce a plus de sens pour une "application" de toute façon.

+0

C'est bon à savoir et j'ai fait la modification de mon fichier de paramètres mais maintenant la tâche ne se déclenche plus. Tout le reste fonctionne mais la tâche ne fonctionne pas. – knuckfubuck

+0

ne fonctionne pas? Est-il listé dans la partie de la liste des tâches de l'écran de démarrage au démarrage de celeryd? – asksol