StoreProcedure programada

Firebird

21/03/2005

Olá pessoal, preciso de uma luz,

Tem como fazer uma SP rodar de tempos em tempos no servidor, vams dizer que de 5 em 5 minutos...?


Obrigado

[]s


Titanius

Titanius

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

21/03/2005

Diretamente no banco, acho que não dá, mas você poderia criar um executável que ficasse no servidor e via timer chamasse a SP


GOSTEI 0
Titanius

Titanius

21/03/2005

obrigado, porem o servidor em questao eh linux... e nao sei nada de linux.. :(

Obrigado mesmo assim :D


[]s


GOSTEI 0
Gandalf.nho

Gandalf.nho

21/03/2005

obrigado, porem o servidor em questao eh linux... e nao sei nada de linux.. :( Obrigado mesmo assim :D []s


Ou coloque a aplicação numa máquina cliente, só que aí tem que tomar cuidado para não ter problemas de conexão ou algo semelhante


GOSTEI 0
Titanius

Titanius

21/03/2005

realmente...

deixa eu te perguntar... para isso aconselha eu usar thread ?


obrigado

[]s


GOSTEI 0
Gandalf.nho

Gandalf.nho

21/03/2005

deixa eu te perguntar... para isso aconselha eu usar thread ?


Aí já não sei responder, nunca trabalhei com thread. Vamos ver se alguém mais entendido no assunto possa responder isso para você.


GOSTEI 0
Titanius

Titanius

21/03/2005

ok, obrigado

fico aguardando...

[]s


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

21/03/2005

thread´s são para processamentos simultâneos e, dependendo do tempo de ´vida´ de uma thread, os processos podem ser sobrepostos. por exemplo: vc executa uma tarefa a cada 5 minutos. se a tarefa exceder esse tempo, os processos serão encavalados, pois uma tarefa não teria terminado e outra já seria iniciada, o que pode gerar algum conflito se acontecer a manipulação simultânea de alguma informação. para evitar esse conflito é necessário uma boa analise e fazer o uso correto de [i:b62b118b6a]critcal sections[/i:b62b118b6a], [i:b62b118b6a]synchronization[/i:b62b118b6a], [i:b62b118b6a]mutex[/i:b62b118b6a], [i:b62b118b6a]semaphores[/i:b62b118b6a], etc.

não sei o que sua SP faz; analise-a. veja se no caso de o processo ultrapassar os 5 min será necessário disparar a SP novamente ou se é possível esperar que ela termine pra depois executar outra. analise isso com cuidado. as vezes um TTimer resolve o problema. ao entrar no timer vc o desliga (para evitar processos ´encavalados´), executa a SP e depois religa o timer.


GOSTEI 0
Titanius

Titanius

21/03/2005

blz amigo,

muito obrigado!

[]s


GOSTEI 0
Afarias

Afarias

21/03/2005

A forma mais eficiente de fazer isso na minha opnião é simplesmente agendar um script no servidor Linux (usando CRON)


basta vc criar um script SQL por exemplo contendo:

execute procedure procedimento1;


e salvar como script.sql

e então vc cria o script (bash) q será executado pelo cron, q deve conter basicamente:

/opt/interbase/bin/isql localhost:/caminho/banco.gdb -i /caminho/script.sql -o /tmp/script.log -u usuario -p senha


pronto, agora é só ´agendar´ este script no Cron para executar quando vc deseja (diariamente por exemplo)


T+


GOSTEI 0
POSTAR