Sem mudar muito sua estratégia atual, adiciona, além do PID, um update, que será usado para verificar um TIMEOUT nos scripts, se eles passarem e tiver o PID de alguém e uma data antiga eles roubam para si o registro e, na hora de fazer o UPDATE requer que o PID seja do script que está atualizando. Se você setar o PID como NULL ao voltar com a informação, depois de checar que o PID é do script que está atualizando —não atualizar se o PID for de outro processo— você vai ter a informação de quais registros estão em atualização e quais foram atualizados e há quanto tempo. Daí pode fazer dos mais velhos para os mais novos sempre.
http://dev.mysql.com/doc/refman/5.0/en/timestamp-initialization.html Em 23 de setembro de 2013 17:22, Marcio - Google <[email protected]>escreveu: > Salve Mongers! > > Tenho uma tabela em MySql com algumas centenas de registros. > > Em alguns momentos tenho que "processar" esses registros da forma mais > rápida possível. > > O tempo de processamento de cada registro é de aproximadamente 4-5 > segundos, tempo esse alheio ao meu controle ou a minha vontade. > > Para agilizar, rodo várias vezes o mesmo app, e cada vez que ele sobe pega > um lote de registros. Para impedir que a próxima cópia do app a subir pegue > os mesmos registros, criei uma coluna a mais, e quando o app sobe ele > verifica se a coluna tá vazia, se tiver ele grava o PID dele. > > Está funcionando mais ou menos, exceto pelo fato que não gostei da forma > que ficou e de um efeito colateral. As vezes uma das cópias do app dá algum > erro e cai, só que os registros do lote dele ficam lá com o PID gravado na > coluna, então as outras cópias não mexem mais com esses registros e eles > ficam indefinidamente pendentes. > > Alguma dica de como fazer algo "mais elegante" e "seguro"? > > Para adiantar: > 1. Tem que ser MySql. Posso mexer na tabela a vontade. > 2. O processamento não tem como ser mexido. > > > [...]'s > > Marcio > > ======================================== > ########### Campanha Ajude o Marcio! ########### > http://sosmarcio.blogspot.com.br/ > http://www.vakinha.com.br/VaquinhaP.aspx?e=195793 > ======================================== > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > > -- Leonardo Ruoso Journalist, Perl developer and business consultant Media, UFC/2006; Telecom, IFCE/1998
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
