Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renato Campos

Event no MySQL

Recommended Posts

Boa tarde galera,

 

 

Bom estou com uma duvida.. ja li algumas documentações (nao sei se nao sou mto autoditada) porém não entendi corretamente..

 

Estou trabalhando com "event" no MySQL..

Dentro do meu evento eu chamo uma procedure.. até ai "OK"..

 

Pergunta 01:

 

Digamos que eu coloquei o evento para rodar "cada 10 minutos".. porém cada chamada demora 50 minutos para terminar.. qual o procedimento interno!? ele interrompe?! ele empilha?! ele gera concorrencia e complica a perfomance do banco?!

 

 

Pergunta 02:

 

O que seria essa função ON COMPLETETION (PRESERVE/NOT PRESERVE)?!

 

 

 

Aguardo uma "mãozinha" de vcs..

 

Valeu..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pergunta 01:

 

Digamos que eu coloquei o evento para rodar "cada 10 minutos".. porém cada chamada demora 50 minutos para terminar.. qual o procedimento interno!? ele interrompe?! ele empilha?! ele gera concorrencia e complica a perfomance do banco?!

 

Me responde você. O que você acha?

 

 

Pergunta 02:

 

O que seria essa função ON COMPLETETION (PRESERVE/NOT PRESERVE)?!

 

Esta clausula serve para um evento não ser apagado após a sua execução. O padrão é NOT PRESERVE.

Caso você informe que o evento deve ser preservado, terá que fazer periodicamente uma limpeza. Preservar também te deixa a opção de "lembrar" os eventos que você já executou e alterar para novas execuções.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma solução que fiz aqui no Oracle, o event aqui é um job.

O job chama uma procedure, na sp faço o seguinte

gravo uma tabela de controle com 1 registro apenas.

exemplo grosso modo sem me preocupar com a síntaxe.

 


begin

  select flag from controle.

  if flag = 0 then

     update controle set flag=1;

     ... faz o que tem de fazer;

     update controle set flag=0;

  end if;

 

Assim se o job atropelar a 2ª execução não faz nada, previne um atropelamento.

 

Mas no Oracle o job é reagendado ao final da execução.

Ou seja quando a SP acaba o job se reagenda conforme a regra,

no seu exemplo 10 minutos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.