[SP-pm] Bloqueando registros para processamento

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


um campo updated


Em 24 de setembro de 2013 10:19, Leonardo Ruoso <leonardo em ruoso.com>escreveu:

> 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
>



-- 
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/14394130/attachment.html>


More information about the SaoPaulo-pm mailing list