Как сохранить результат отложенного вызова с использованием сельдерея в представлении django? - PullRequest
6 голосов
/ 13 сентября 2010

Я следовал рекомендациям в http://celeryq.org/docs/django-celery/getting-started/first-steps-with-django.html и создал представление, которое вызывает мой метод тестирования в tasks.py:

import time
from celery.decorators import task

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

Но если мой метод add требует много времени для ответа, как я могу сохранить объект результата, полученный при вызове add.delay (1,2), и использовать его для проверки прогресса / успеха / результата с помощью get позже

1 Ответ

4 голосов
/ 14 сентября 2010

Вам нужен только идентификатор задачи:

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

При этом вы можете опрашивать статус задачи (используя, например, AJAX). Django-celery поставляется с представлением, которое возвращает результаты и статус в JSON:http://celeryq.org/docs/django-celery/reference/djcelery.views.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...