PDA

Ver la Versión Completa : Tareas Automaticas


toni.vi
04-05-2007, 18:44:32
Es posible que el motor Firebird realice una tarea automatica, por ejemplo cada minuto que compruebe la hora actual y en funcion de x decisiones grabe un registro.
Saludos
Toni

TJose
04-05-2007, 19:37:09
Hola toni.vi

Por si sólo la respuesta es NO. Pero no es nada dificil hacer un script que se ejecute con la frecuencia que desees, y haga lo que necesites.

Saludos
TJose

toni.vi
04-05-2007, 19:45:14
Como puedo ejecutar un script automatico desde el servidor.
Toni

jhonny
04-05-2007, 20:26:43
Explicanos, ¿Para que quieres que un procedimiento se ejecute cada cierto tiempo?, quizá tu problema se solucione cuando cierto evento ocurra y de esa manera solo seria cuestión de ejecutarlo en ese momento.

toni.vi
04-05-2007, 21:09:52
El problema es el siguiente:
Cada minuto la base de datos debe tomar la hora actual y compararla con la ultima que ha grabado.
Si el tiempo transcurrido es de 1 minuto volvera a actualizar la hora actual.
Si el tiempo transcurrido es distinto de 1 minuto + - diferencia parametrizable, deberá grabar un registro en tabla de incidencias.
Este tipo de comprobacion es para que no cambien la hora del servidor y si lo hacen saber cuando ha ocurrido.
La aplicación graba unos marcajes que se efectúan en pcs clientes, y la hora es siempre la del servidor, pero cabe la posibilidad de que se pueda cambiar la hora del servidor y este caso no se debería permitir.
Espero se entienda.
Toni

jhonny
04-05-2007, 21:35:14
Si la cosa tiene que ser así, yo usaría un Trigger que llamara dicho procedimiento y se disparara antes de grabar datos en la tabla a evaluar.

TJose
04-05-2007, 22:01:04
Hola

Qué sistema operativo estas usando en el servidor?
Pregunto porque no debiera poderse cambiar la hora del servidor, a no ser que el usuario tenga permisos para hacerlo.
Me parece que la solución (elegante) viene por la administración correcta del servidor.

Saludos
TJose

egostar
04-05-2007, 22:06:24
Hola

Qué sistema operativo estas usando en el servidor?
Pregunto porque no debiera poderse cambiar la hora del servidor, a no ser que el usuario tenga permisos para hacerlo.
Me parece que la solución (elegante) viene por la administración correcta del servidor.

Saludos
TJose
Pues creo que esto (http://www.clubdelphi.com/foros/showpost.php?p=198757&postcount=36) y esto otro (http://www.clubdelphi.com/foros/showpost.php?p=199001&postcount=40) da al traste con tu comentario amigo TJose. Que barbaridad con estos señores del club.:D

Salud OS.

roman
04-05-2007, 22:31:39
Pues creo que esto (http://www.clubdelphi.com/foros/showpost.php?p=198757&postcount=36) y esto otro (http://www.clubdelphi.com/foros/showpost.php?p=199001&postcount=40) da al traste con tu comentario amigo TJose.

¡Hombre no! runas y sudo te piden la contraseña, sino, valiente cosa sería. :D

// Saludos

Casimiro Notevi
04-05-2007, 23:44:25
Por supuesto, como dice roman, necesitas el password.

Lo más lógico para evitar que no cambien la hora es que no tengan permiso, simplemente.
También puedes habilitar en el servidor el servicio de sincronización del reloj (ntp) para que se actualice automáticamente cada x tiempo con cualquier reloj atómico que decidas.
En linux es simplísimo, e imagino que en windows también se podrá.

jhonny
05-05-2007, 00:01:24
Este tipo de comprobacion es para que no cambien la hora del servidor y si lo hacen saber cuando ha ocurrido.

Este párrafo me da a entender que el usuario puede tener la posibilidad de cambiar dicha hora, pero que el aplicativo de toni.vi solo debe guardar un historial de dicho evento para futuros informes.


La aplicación graba unos marcajes que se efectúan en pcs clientes, y la hora es siempre la del servidor, pero cabe la posibilidad de que se pueda cambiar la hora del servidor y este caso no se debería permitir.

Este párrafo me da a entender que definitivamente nadie debe cambiar la hora del servidor.


Cual de las dos cosas es?, no entiendo el asunto o ando muy tapao. :D

En todo caso y así a simple vista, definitivamente lo mejor es manejarlo con los permisos del servidor y/o algún sincronizador de horas. Pero eso si, dicho reporte ya no existiría porque sencillamente ya no sería necesario.

toni.vi
05-05-2007, 13:50:11
Gracias por todas las respuestas.
El problema de que puedan cambiar la hora es importante, porque podría cambiarse incluso por algún programa externo.
Para resolver el problema se pueden poner medios como habeis apuntado.
La pregunta senzilla es:
¿Existe algun timer en la base de datos que se ejecute cada x tiempo y pueda ejecutar un SP que haga lo que yo quiera?.
Siempre puedo ejecutar un programa desde el servidor que lo haga, pero la pregunta es si puede hacerlo la base de datos.
Creo que no.
Gracias.
Toni

TJose
05-05-2007, 14:44:46
Hola

¿Existe algun timer en la base de datos que se ejecute cada x tiempo y pueda ejecutar un SP que haga lo que yo quiera?.

Nuevamente, NO

Insisto que la solución debiera venir por la administración correcta del servidor. Supongamos que *si* existiera ese timer, o que como te dije en mi primer post, ejecutaras un script que realice cierta tarea. Que seguridad tienes que no te paren el servicio de FB, o te borren el script, o te borren la propia base de datos, etc. Si te entran a servidor para cambiar la hora, también podrán realizar cualquier cosa en el.

Saludos
TJose