[pyar] [Celery] Obtener progreso de una cadena de tasks
hernantz
hernantz en gmail.com
Sab Mayo 18 12:44:57 ART 2013
On Thu 16 May 2013 02:44:59 PM ART, DF-- wrote:
>
> 2013/5/15 hernantz <hernantz en gmail.com <mailto:hernantz en gmail.com>>
>
> On Mon 13 May 2013 02:42:36 PM ART, hernantz wrote:
>
> Hola!
> Estoy usando Python 2.7.3, Celery 3.0.19 y Redis para poder
> tener una
> cola de trabajo asíncrona
> e ir consultando el estado de la misma. Tomé el camino de usar una
> "chain" de tareas, porque me pareció
> lo indicado.
> En este pastebin [0] muestro lo mínimo para visualizar mi
> problema.
>
> Como ven en la línea 50 y 51, los objetos difieren y no me
> puedo dar
> cuenta por qué.
> Al final, lo único que necesito es tener lo más parecido a una
> cola de
> trabajo, y yo
> poder consultar el status de cada tarea de esa cola (haciendo
> polling).
> Es válido tomar otros caminos y cualquier idea/pregunta es
> bienvenida :)
>
>
>
>
> Dado que pensás hacer polling, sería más eficiente y compatible con tu
> modelo implementar el pattern observer?
>
> Home <http://sourcemaking.com/> › Design Patterns
> <http://sourcemaking.com/design_patterns> › Behavioral patterns
> <http://sourcemaking.com/behavioral_patterns>
>
>
> Observer Design Pattern
>
>
> Intent
>
> * Define a one-to-many dependency between objects so that when one
> object changes state, all its dependents are notified and
> updated automatically.
> * Encapsulate the core (or common or engine) components in a Subject
> abstraction, and the variable (or optional or user interface)
> components in an Observer hierarchy.
>
>
>
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
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/
More information about the pyar
mailing list