Comment stocker le résultat d'un retard appel à l'aide de céleri dans une vue django?

StackOverflow https://stackoverflow.com/questions/3703472

  •  02-10-2019
  •  | 
  •  

Question

a suivi les directives passe dans http : //celeryq.org/docs/django-celery/getting-started/first-steps-with-django.html et a créé une vue qui appelle ma méthode de test dans tasks.py:

import time
from celery.decorators import task

@task()
def add(x, y):
    time.sleep(10)
    return x + y

Mais si mon add-méthode prend beaucoup de temps pour répondre, comment puis-je stocker le résultat objet je suis arrivé lors de l'appel add.delay (1,2) et l'utiliser pour vérifier les progrès / succès / résultat en utilisant obtenir plus tard ?

Était-ce utile?

La solution

Vous avez seulement besoin de la tâche id:

result = add.delay(2, 2)
result.task_id

Avec cela, vous pouvez demander l'état de la tâche (par exemple en utilisant AJAX) Django-céleri est livré avec une vue qui renvoie les résultats et la situation en JSON: http://celeryq.org/docs/django-celery/reference/ djcelery.views.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top