[pyar] [Celery] Obtener progreso de una cadena de tasks
DF--
dj.foguelman en gmail.com
Lun Mayo 20 15:31:32 ART 2013
> Hola!, gracias por la respuesta.
> Mira esa seria la posta, esta muy bueno y me hizo pensar que se puede
> reemplazar la tabla algo mas simple:
>
> chains = {}
> chains['id_unico'] = chain(task1, task2, task3).apply_async() # guardo
> este objeto chain que se que funciona
>
> y despues consulto asi:
>
> unpack_chain(chains['id_unico'**])
>
> para obtener el estado de las tareas, pero tiene el tema de que ese dict
> chains va a ir creciendo...
> No es el observer pattern que vi [0], pero el chain() seria mi observer
> creo.
> Al fin y al cabo, el celery.AsyncResult('id_unico') me devuelve un objeto
> chain que se olvido de las referencias hacia sus tareas :(
>
> Saludos
>
> [0] http://code.activestate.com/**recipes/131499-observer-**pattern/<http://code.activestate.com/recipes/131499-observer-pattern/>
>
>
>
Cabe decir que no conozco celerity ni usé redis demasiado pero
conceptualmente (sin mandarme cagadas), el pattern observer es muy
abstracto, pensá en la intención del patrón y entendé como esta intención
se aplica en tu problema, yo entiendo lo siguiente:
vos tenés cada task, querés que un externo conozca el estado de la tarea
sin hacer polling
agarrás y registrás que la tarea va a ejecutar en algún momento al
observador
delegás el comportamiento de la tarea a una entidad superior que informa al
observador que determinada acción empezó o terminó
tu observador te informa cuando una tarea se termina por que está
escuchando cuando van terminando las tareas.
avisame si esto te genera nuevas dudas o te da nuevas inquietudes =)
Abrazo, D.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130520/49dbc247/attachment.html>
More information about the pyar
mailing list