Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Ejecutar Procedure en firebird a una determinada hora (https://www.clubdelphi.com/foros/showthread.php?t=94358)

jo3litro 23-12-2019 19:32:23

Ejecutar Procedure en firebird a una determinada hora
 
Tengo un server centos 7 con firebird 3.0, y necesito ejecutar un procedure a una determinada hora.

Es posible que el motor lo ejecute sin necesidad de que una aplicación lo dispare ?

saludos !

Casimiro Notevi 23-12-2019 20:18:04

No recuerdo que exista algo de eso.

Combat-F2D 24-12-2019 08:35:30

lo puedes hacer en tres pasos
esto es Ubuntu Server y Firebird 2.5 para aclarar, pero en CentOs será más menos

1 - lanzar una tarea programada a tu hora dada

sudo crontab -e

Código:

mm hh * * * nice -n19 sh ./tu_path/lanzando_mi_procedure.sh
nice es para que se ejecute con super baja prioridad y no moleste mucho al servidor (cosas mías)

2 - creas su fichero script ./tu_path/lanzando_mi_procedure.sh

su contenido puede ser tal como:

Código:

sudo /opt/firebird/bin/isql -q -i ./tu_path/este_es_tu_fichero.sql
(/opt/firebird/bin/ será el path donde está instalado tu firebird ...)

3 - creas su fichero sql ./tu_path/este_es_tu_fichero.sql

su contenido puede ser tal como:

Código SQL [-]
             SET NAMES WIN1254;

             SET SQL DIALECT 3;

             CONNECT '192.ip_servidor:alias_de_tu_BD' USER 'SYSDBA' PASSWORD 'la_tuya';

             EXECUTE PROCEDURE ESTE_ES_EL_PROCEDURE_QUE_TU_QUIERES_LANZAR;

             COMMIT;

este sistema lo empleo en mis servidores y hasta la fecha no he tenido problemas.
en windows también lo tengo implantado y es más o menos lo mismo con su particularidades (ejecutar como administrador)

espero que te pueda servir

Casimiro Notevi 24-12-2019 09:51:42

Yo uso lo mismo, tareas lanzadas por crontab.
No lo ejecuta directamente firebird, que es lo que pedía jo3litro, pero seguro que le sirve también.

jo3litro 24-12-2019 12:51:28

Combat-F2D !!!

Excelente la explicación, lo probé y funciona correctamente.

Había pensado lo mismo, solo que mi sh no estaba de la forma incorrecta, ni con los ; al final. Llegue hasta conectar con la base pero luego ya no me permitía pasarle parametros de ejecución.

Código:

cd /opt/firebird/bin
./isql
connect mibase
execute procedure miprocedure

Camisimiro, talvez no me explique correctamente, pero esto es justo lo que necesitaba.

Muchas gracias !

Casimiro Notevi 24-12-2019 13:03:53

Cita:

Empezado por jo3litro
Camisimiro, talvez no me explique correctamente, pero esto es justo lo que necesitaba.

Pues ya sabes, la próxima explica mejor: :D

Cita:

Empezado por jo3litro
Es posible que el motor lo ejecute sin necesidad de que una aplicación lo dispare ?



La franja horaria es GMT +2. Ahora son las 21:56:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi