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@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.

_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a