[Python-es] ejecutar una función cada cierto tiempo.

Boris Perez Canedo inf200523 en ucf.edu.cu
Jue Abr 15 18:57:19 CEST 2010



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
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20100415/242a5b3a/attachment.html>


Más información sobre la lista de distribución Python-es