J'utilise Celery version 4.0.2. Par rapport aux versions précédentes de Celery, il semble que les tâches basées sur les classes ne soient pas enregistrées automatiquement (c'est-à-dire si vous avez configuré la découverte automatique).Enregistrer la tâche basée sur la classe dans
Cependant, je ne parviens même pas à enregistrer manuellement une tâche basée sur une classe.
Selon le changement Céleri journal:
http://docs.celeryproject.org/en/latest/changelog.html#version-4-0-1
depuis la version 4.0.1, il devrait être possible d'enregistrer la tâche manuellement:
from celery import Celery, Task
app = Celery()
class CustomTask(Task):
def run(self):
return 'hello'
app.register_task(CustomTask())
Mais cela ne semble pas fonctionner. Est-ce que quelqu'un sait comment y parvenir?
J'ai essayé quelques suggestions qui sont discutées (en dehors de l'intégration d'un chargeur de tâche personnalisée mentionnée dans https://github.com/celery/celery/issues/3744):
Register Celery Class-based Task
https://github.com/celery/celery/issues/3615
https://github.com/celery/celery/issues/3744
Mais cela ne fonctionne pas lors de l'importation de 'task' sur d'autres fichiers. – harukaeru