[pyar] Dependencias, threading.Event y sincronizacion

Andres Riancho andres.riancho en gmail.com
Vie Mayo 31 22:12:06 ART 2013


Hernan,

2013/5/30 Hernan Grecco <hernan.grecco en gmail.com>:
> Hola Andres,
>
> 2013/5/24 Hernan Grecco <hernan.grecco en gmail.com>
>>
>> >     Es la primera vez que me topo con un problema como estos, alguien
>> > con experiencia en Events para contarme que le parece? Otro metodo
>> > para resolver el problema?
>> En python puro podes armar una lista de dependencias ordenadas e ir
>> ejecutando por grupos. Aca tenes un resolvedor de dependencias [1]
>
>
> Ayer tuve que hacer algo parecido a lo que te sugerí. Corte la parte
> relevante en un gist:
>
> https://gist.github.com/hgrecco/5682306

Impresionante este codigo, uno cree que sabe de Python hasta que se
cruza con alguien que en unas pocas lineas resuelve un problema de
manera elegante :) Estuve jugando un poco con tu ejemplo y encontre lo
siguiente:

...
@tasks.add()
def f1():
    time.sleep(.4)
    print(time.time(), 1)

@tasks.add(f1)
def f2():
    time.sleep(15)
    print(time.time(), 2)

@tasks.add(f1)
def f3():
    time.sleep(.4)
    print(time.time(), 3)

@tasks.add(f3)
def f4():
    time.sleep(.4)
    print(time.time(), 4)
...

andres en eu:/tmp$ python tasksmagic.py
Function in the subgroup line will be run concurrently
0: f1
1: f3, f2
2: f4
(1370048661.67147, 1)
(1370048662.072734, 3)
(1370048676.678918, 2)
(1370048677.080673, 4)

El tema aca es que f4 solo depende de la tarea f3, pero aún así espera
a que termine f2, entiendo que es porque esta asi armado el codigo de
analisis de las dependencias, pero creo que se puede mejorar para que
en estos casos funcione bien tambien.

Ahora ya es tarde, quizás mañana le de una mirada a este problema, y
tambien a una manera de hacer que funcione con metodos en vez de
funciones. En mis pruebas lo hice andar con funciones, pero tuve que
hacerlo "feo", creo que voy a tener que usar algun decorador en la
clase... veremos, despues les comparto si queda lindo.

Saludos,

> suerte,
>
> Hernán
>
> _______________________________________________
> 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



--
Andrés Riancho
Project Leader at w3af - http://w3af.org/
Web Application Attack and Audit Framework
Twitter: @w3af
GPG: 0x93C344F3



More information about the pyar mailing list