[SP-pm] Bloqueando registros para processamento

Tiago Peczenyj tiago.peczenyj at gmail.com
Mon Sep 23 14:09:37 PDT 2013


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130923/4995a74e/attachment.html>


More information about the SaoPaulo-pm mailing list