[Python-es] ejecutar una función cada cierto tiempo.
José María
josemariaruiz en gmail.com
Lun Abr 26 19:17:13 CEST 2010
Probablemente necesitas un sistema de scheduling independiente de la tu
aplicación, yo he probado Kronos:
http://www.razorvine.net/download/kronos.py
que básicamente es un componente de TurboGears que han extraido y
aislado. Funciona muy bien.
Un saludo.
On 15/04/2010 17:57, Boris Perez Canedo wrote:
> Hola a todos.
>
> Necesito hacer un script que corra constantemente y cada cierto tiempo
> ejecute una función:
>
> Se que podría utilizar al s.o. (programar una tarea) pero me interesa
> hacerlo con python porque es parte de un sistema que estoy haciendo y
> ha de funcionar en cualquier s.o.
>
> La idea que tengo es la siguiente:
>
> En un archivo de configuración tengo el día de la semana y la hora en
> que ha de correrse la función, sería algo así:
>
> 0-08:00:00 ó 3600
>
> Con expresiones regulares separo el día de la semana (en este caso 0
> es Lunes) y la hora (08:00:00). Podría solo aparecer un número, en
> este caso significa que la función se correrá una vez que transcurra
> ese tiempo en segundos.
>
> Para el segundo caso me resulta sencillo hacerlo y sería algo como esto:
>
> def funcion():
> "hacer algo"
>
> def Para2doCaso(conf_file):
> while True:
> dia, hora = obtener_config(conf_file)
> if hora == "":
> #estamos en el segundo caso (dia contiene
> los segundos a esperar).
> funcion() # ejecuto mi funcion
> time.sleep(int(dia)) # espero
> else:
> # aqui viene la otra forma de configuracion y
> mi duda.
>
> Pongo dentro del ciclo dia, hora = obtener_config(conf_file) porque
> aunque es cierto que en el segundo caso puede llegar a ejecutarse la
> función cada, por ejemplo, 1 segundo, no es lo común, lo normal es que
> se ejecute de 30 o 40 minutos en adelante y necesito que sea revisada
> la configuración ya que puede llegarse a cambiar en ese tiempo.
>
>
> Gracias por adelantado.
>
> Saludos,
> Boris.
>
>
>
>
> ------------------------------------------------------------------------
>
> La mejor vacuna contra el virus A(H1N1) es la higiene personal
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
--
José María Ruiz Aguilera
Simple Option S.L.U.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20100426/dc202abc/attachment.html>
Más información sobre la lista de distribución Python-es