[SP-pm] Bloqueando registros para processamento

Leonardo Ruoso leonardo at ruoso.com
Tue Sep 24 06:19:11 PDT 2013


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 <marciorp em gmail.com>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: SaoPaulo-pm em pm.org
>  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
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130924/dbfa5807/attachment-0001.html>


More information about the SaoPaulo-pm mailing list