Olá amigos, estou com um problema, tenho uma procedure que executa um calculo, o problema ocorre quando esta procedure é executada varias vezes, gostaria de garantir que esta procedure apenas seja rodada 1 por vez. Alguém tem alguma dica?
Pensei em fazer da seguinte forma, no inicio da procedure gravar um indicador em uma tabela, com a data de inicio e o nome da procedure, caso ela seja executado novamente, poderá identificar que existe um calculo em andamento ignorando o processo interno e finalizando.
Terminando o calculo na primeira procedure gravo na coluna data fim, indicando que o calculo terminou.
Mas ao realizar testes de concorrência realizando 5 ou 10 conexões simultâneas, repetindo varias vezes, um ou outro calculo é executado ao mesmo tempo, isso devido que a tabela ao qual estou utilizando como um semáfaro está sendo acessada ao mesmo tempo por conexões concorrentes, e ambas no mesmo momento vê que não existe calculo sendo realizado e iniciam no mesmo instante.
Pergunta
Antonio Remualdo Junior
Olá amigos, estou com um problema, tenho uma procedure que executa um calculo, o problema ocorre quando esta procedure é executada varias vezes, gostaria de garantir que esta procedure apenas seja rodada 1 por vez. Alguém tem alguma dica?
Pensei em fazer da seguinte forma, no inicio da procedure gravar um indicador em uma tabela, com a data de inicio e o nome da procedure, caso ela seja executado novamente, poderá identificar que existe um calculo em andamento ignorando o processo interno e finalizando.
Terminando o calculo na primeira procedure gravo na coluna data fim, indicando que o calculo terminou.
Mas ao realizar testes de concorrência realizando 5 ou 10 conexões simultâneas, repetindo varias vezes, um ou outro calculo é executado ao mesmo tempo, isso devido que a tabela ao qual estou utilizando como um semáfaro está sendo acessada ao mesmo tempo por conexões concorrentes, e ambas no mesmo momento vê que não existe calculo sendo realizado e iniciam no mesmo instante.
Obrigado!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.