spanish nutrition juice espaƱol benefits celery

nutrition - celery python



Recuperar el resultado de la tarea por id en el apio (2)

Estoy tratando de recuperar el resultado de una tarea que se ha completado. Esto funciona

from proj.tasks import add res = add.delay(3,4) res.get() 7 res.status ''SUCCESS'' res.id ''0d4b36e3-a503-45e4-9125-cfec0a7dca30''

Pero quiero ejecutar esto desde otra aplicación. Así que vuelvo a ejecutar el shell de python y trato de:

from proj.tasks import add res = add.AsyncResult(''0d4b36e3-a503-45e4-9125-cfec0a7dca30'') res.status ''PENDING'' res.get() # Error

¿Cómo puedo recuperar el resultado?


Esto se debe a que RabbitMQ no almacena los resultados . Si necesita la capacidad de obtener los resultados más adelante, utilice redis o SQL como resultado.


Funciona utilizando AsyncResult . (ver esta answer )

Así que primero crea la tarea:

from cel.tasks import add res = add.delay(3,4) res.status ''SUCCESS'' res.id ''432890aa-4f02-437d-aaca-1999b70efe8d''

Luego comienza otra concha de pitón:

from celery.result import AsyncResult from cel.tasks import app res = AsyncResult(''432890aa-4f02-437d-aaca-1999b70efe8d'',app=app) res.state ''SUCCESS'' res.get() 7