[SP-pm] Bloqueando registros para processamento

Marcio - Google marciorp at gmail.com
Mon Sep 23 16:05:11 PDT 2013


R
​enato++++

Era mais ou menos isso que tava pensando mesmo.
Mas como faço isso usando o DBI. Não consegui.
​


[...]'s

Marcio

========================================
########### Campanha Ajude o Marcio! ###########
http://sosmarcio.blogspot.com.br/
http://www.vakinha.com.br/VaquinhaP.aspx?e=195793
========================================


Em 23 de setembro de 2013 17:33, Renato Santos <renato.cron em gmail.com>escreveu:

> explicando melhor,
>
> já que você não parece ter ninguem pra controlar de verdade quantos
> registros tem para ser processados,
> voce pode fazer um
>
> BEGIN;
> SELECT xxx FROM table WHERE not_processed LIMIT 1 FOR UPDATE ;
> <processa>
> UPDATE
>
> COMMIT;
>
> como só tem um 'limit 1' você teria q rodar isso várias vezes.
>
> vocẽ tambem pode aumentar o número, só que ai se você colocar 100, e só
> tiver 40 registros, o segundo e os demais processos não vão pegar ninguem.
>
>
>
> 2013/9/23 Renato Santos <renato.cron em gmail.com>
>
>> Como é mysql, só posso dizer:
>>
>> http://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.html
>>  boa sorte!
>>
>>
>>
>> 2013/9/23 Marcio - Google <marciorp em 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 em pm.org
>>>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
>>> =end disclaimer
>>>
>>>
>>
>>
>> --
>> Saravá,
>> Renato CRON
>> http://www.renatocron.com/blog/
>> @renato_cron <http://twitter.com/#!/renato_cron>
>>
>
>
>
> --
> Saravá,
> Renato CRON
> http://www.renatocron.com/blog/
> @renato_cron <http://twitter.com/#!/renato_cron>
>
> =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
>
>
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130923/ee498088/attachment-0001.html>


More information about the SaoPaulo-pm mailing list