Foros del Web » Programación para mayores de 30 ;) » Programación General »

contador y saber si una funcion se ejecuta

Estas en el tema de contador y saber si una funcion se ejecuta en el foro de Programación General en Foros del Web. Hola: Tengo un problemilla en perl y escribia para ver si alguien podia darme una idea. El caso es que tengo un script el cual ...
  #1 (permalink)  
Antiguo 05/09/2008, 04:24
 
Fecha de Ingreso: agosto-2008
Mensajes: 27
Antigüedad: 16 años, 3 meses
Puntos: 0
contador y saber si una funcion se ejecuta

Hola:

Tengo un problemilla en perl y escribia para ver si alguien podia darme una idea.

El caso es que tengo un script el cual tiene un un bucle principal de la siguiente forma:

while(1){

procesado();
....
....
}


la funcion procesado realiza el procesado de un fichero de entrada, este fichero se separa en unos bloques que se corresponden con alarmas (es decir cada bloque es una alarma) y recoge unos campos de este bloque y envia estos campos que sera una alarma, dependiendo de alguno de ellos ,por ejemplo:
if (campo1==546){
sendLog($mensaje, $ID........)
elsif (campo1==560){
sendLog($mensaje1,$ID1...)
...
...

}

el caso es que el fichero de entrada se va actualizando y mi script lo va leyendo, y la pregunta es la siguiente:

Yo quiero que ,cuando durante un cierto tiempo mi script no haga sendLog por ejemplo de un bloque q tiene campo1=546 que envie otro sendLog con un mensaje de alarma.

Habia pensado en un contador de tiempo pero tampoc sé bien como se hace ni como comprobrar q no se ha hecho el sendLog de ese tipo de alarma durante ese tiempo para mandar la alarma.

Un saludo y gracias
  #2 (permalink)  
Antiguo 05/09/2008, 06:29
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 9 meses
Puntos: 90
Respuesta: contador y saber si una funcion se ejecuta

tendrías que guardar en un archivo la fecha y hora en la que fué ejecutada la última sendlog con código 546...y cada vez que envíes ese sendlog hacés la comparación con esa fecha y hora...si es mayor cambia de número...y a no olvidar actualizar el archivo con la nueva fecha y hora...

No se me ocurre otra forma...Espero que te sirva

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 05/09/2008, 09:57
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 6 meses
Puntos: 11
Respuesta: contador y saber si una funcion se ejecuta

Podrías usar sleep() para marcar tiempos en que lees el fichero. Y luego, puedes usar array o hash para guardar la última vez que se envió la información.

En cada bucle, aumentas en 1 los contadores. Si superan una cierta cantidad, envías la alarma, y si no, el SendLog(), y pones su contador a 0.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:18.