[SP-pm] Bloqueando registros para processamento

Tiago Peczenyj tiago.peczenyj at gmail.com
Mon Sep 23 14:12:54 PDT 2013


opa. a ideia continua mas na real é mais simples. grava quem esta
processando e quando começou. deixe seu criterio de "pegar o proximo da
fila" levar em conta quanto tempo ta demorando.


2013/9/23 Tiago Peczenyj <tiago.peczenyj at gmail.com>

> opa chefe
>
> se eu entendi, eu proponho o sequinte:
>
> 1- pega um lote de dados e manda pro Redis ou Riak ou SQLITE ou CSV ou qq
> coisa q vc consiga salvar e todas as apps possam ler.
> 2- faz tuas apps consumirem como se fosse uma fila, um por vez. Se quiser
> use mensageria. acho cafona.
> 3- implementa um timeout: se demorar 5 minutos o "dado" volta pra fila e
> vc reinicia a app la. veja se o Action::Retry nao resolve
> 4- faz dois "servers" (um é backup do outro, no sentido de "quem chegar
> primeiro vence") cuidarem da sincronia: sistema lento <-> cache rapido
>
> senão mete um timeout nas apps. se demorou demais o bloco "volta" pro
> sistema lento. melhor usar a primeira ideia,
>
>
>
>
> 2013/9/23 Marcio - Google <marciorp at gmail.com>
>
>> 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 at pm.org
>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>> =end disclaimer
>>
>>
>
>
> --
> Tiago B. Peczenyj
> Linux User #405772
>
> http://about.me/peczenyj
>



-- 
Tiago B. Peczenyj
Linux User #405772

http://about.me/peczenyj
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130923/3fc53705/attachment-0001.html>


More information about the SaoPaulo-pm mailing list