Membro desde: 27/03/2006 13:15:15
Mensagens: 358
Offline
Boas pessoal!
base de dados : Mysql
Quando faço um select gostaria que os registos que eu selecionei fossem bloqueados para que nao seja visiveis nos threads seguintese eles nao os possam manipular manipular.
O que acontece é que quando eu executo um thead ele faz um select ele leva um tempinho para processar todos os registos que ele encontrou, e durante o meio deste processamento outra thread começa e vai a procurar de rgistos que ainda nao foram tratados, incluindo aqueles que estao a ser tratados pela thread anterior. o que ta me dando alguma duplicação no programa.
a thread é executado de x em x segundos e as vezes o processamento de cada thread leva mais tempo que o intervalo da execução de cada thread.
Tem como eu fazer isso de modos a que quando uma thread apanhar um determinado numero de registos so ela trata deles ?
Obrigado !
MCSE; CCNA; SCJP 1.5
"Quando o Homem Pensa o Mundo Salta e Avança !"
Membro desde: 27/07/2011 09:11:25
Mensagens: 164
Offline
Carinha, isso tá me cheirando a falha de projeto no desenho da tabela: se você tem que preparar os dados de alguma maneira antes que eles possam ser utilizados, você tem que marcá-los de alguma forma: por exemplo, colocar um campo chamado "lock" na sua tabela e enquanto o "lock" tiver determinado valor outros pontos da aplicação não podem utilizá-los.
Aí você faz um select "where lock <> 'X'" onde X é o valor que indica que travou.