[SP-pm] Bloqueando registros para processamento

Marcio - Google marciorp at gmail.com
Mon Sep 23 16:06:04 PDT 2013


Tiago, eu tava pensando em algo mais simples ... tipo a ideia que o Renato
acabou de postar.


[...]'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 19:05, Marcio - Google <marciorp em gmail.com>escreveu:

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


More information about the SaoPaulo-pm mailing list