<div dir="ltr">Posso estar errado, mas isso funciona apenas com InnoDB. </div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/9/24 Andre Carneiro <span dir="ltr"><<a href="mailto:andregarciacarneiro@gmail.com" target="_blank">andregarciacarneiro@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Humm.. transações + MySQL .... medo!<div><br></div><div><br></div><div>BEGIN não rola no MySQL. Subistitua por START TRANSACTION</div>
<div><br></div><div>Ah é! E no momento da conexão com o banco de dados, sete a variável AutoCommit do DBI para 0.</div>
<div><br></div><div>my $dbh = DBI->connect(blabla,$usuario,$senha,{AutoCommit=>0}) or die $DBI::errstr;</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br><div><div><br></div><div>Proost!</div>

<div><br><div><br></div><div><br><div><br></div><div><br></div><div><br></div></div></div></div></div></div><div class="gmail_extra"><div><div class="h5"><br><br><div class="gmail_quote">2013/9/23 Marcio - Google <span dir="ltr"><<a href="mailto:marciorp@gmail.com" target="_blank">marciorp@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Tiago, eu tava pensando em algo mais simples ... tipo a ideia que o Renato acabou de postar.</div>

</div><div class="gmail_extra"><div><br clear="all">
<div><div dir="ltr"><br>[...]'s<br><br>Marcio<div><br></div><div><div style="font-family:arial;font-size:small">========================================</div><div style="font-family:arial;font-size:small">########### Campanha Ajude o Marcio! ###########</div>


<div style="font-family:arial;font-size:small"><a href="http://sosmarcio.blogspot.com.br/" style="color:rgb(17,85,204)" target="_blank">http://sosmarcio.blogspot.com.br/</a></div><div style="font-family:arial;font-size:small">


<a href="http://www.vakinha.com.br/VaquinhaP.aspx?e=195793" style="color:rgb(17,85,204)" target="_blank">http://www.vakinha.com.br/VaquinhaP.aspx?e=195793</a><br></div><div style="font-family:arial;font-size:small">========================================</div>


</div></div></div>
<br><br></div><div class="gmail_quote">Em 23 de setembro de 2013 19:05, Marcio - Google <span dir="ltr"><<a href="mailto:marciorp@gmail.com" target="_blank">marciorp@gmail.com</a>></span> escreveu:<div><div>
<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">R<div class="gmail_default" style="font-family:arial,helvetica,sans-serif;display:inline">​enato++++</div><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;display:inline"><br></div>



</div><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;display:inline">Era mais ou menos isso que tava pensando mesmo.</div></div><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;display:inline">



Mas como faço isso usando o DBI. Não consegui.</div><span style="font-family:arial,helvetica,sans-serif">​</span></div></div><div class="gmail_extra"><div><br clear="all"><div><div dir="ltr"><br>[...]'s<br>
<br>Marcio<div><br>
</div><div><div style="font-family:arial;font-size:small">========================================</div><div style="font-family:arial;font-size:small">########### Campanha Ajude o Marcio! ###########</div><div style="font-family:arial;font-size:small">



<a href="http://sosmarcio.blogspot.com.br/" style="color:rgb(17,85,204)" target="_blank">http://sosmarcio.blogspot.com.br/</a></div><div style="font-family:arial;font-size:small"><a href="http://www.vakinha.com.br/VaquinhaP.aspx?e=195793" style="color:rgb(17,85,204)" target="_blank">http://www.vakinha.com.br/VaquinhaP.aspx?e=195793</a><br>



</div><div style="font-family:arial;font-size:small">========================================</div></div></div></div>
<br><br></div><div class="gmail_quote">Em 23 de setembro de 2013 17:33, Renato Santos <span dir="ltr"><<a href="mailto:renato.cron@gmail.com" target="_blank">renato.cron@gmail.com</a>></span> escreveu:<div><div>
<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">explicando melhor,<div><br></div><div>já que você não parece ter ninguem pra controlar de verdade quantos registros tem para ser processados,</div><div>voce pode fazer um</div><div><br></div><div>BEGIN;</div>





<div>SELECT xxx FROM table WHERE not_processed LIMIT 1 FOR UPDATE ;</div><div><processa></div><div>UPDATE</div><div><br></div><div>COMMIT;</div><div><br></div><div>como só tem um 'limit 1' você teria q rodar isso várias vezes.</div>





<div><br></div><div>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.</div><div><br></div></div><div><div>
<div class="gmail_extra"><br>

<br><div class="gmail_quote">2013/9/23 Renato Santos <span dir="ltr"><<a href="mailto:renato.cron@gmail.com" target="_blank">renato.cron@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div dir="ltr">Como é mysql, só posso dizer:<div><br></div><div><a href="http://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.html" target="_blank">http://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.html</a><br>





</div><div>
boa sorte!</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>2013/9/23 Marcio - Google <span dir="ltr"><<a href="mailto:marciorp@gmail.com" target="_blank">marciorp@gmail.com</a>></span><br>






</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">

Salve Mongers!</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">
<br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">
Tenho uma tabela em MySql com algumas centenas de registros.</div><div><div dir="ltr"><br></div><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Em alguns momentos tenho que "processar" esses registros da forma mais rápida possível.</div>







<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">O tempo de processamento de cada registro é de aproximadamente 4-5 segundos, tempo esse alheio ao meu controle ou a minha vontade.</div>







<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">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.</div>







<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">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.</div>







<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Alguma dica de como fazer algo "mais elegante" e "seguro"?</div>







<div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Para adiantar:</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">







1. Tem que ser MySql. Posso mexer na tabela a vontade.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">2. O processamento não tem como ser mexido.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">







<br></div></div><div dir="ltr"><br>[...]'s<br><br>Marcio<div><br></div><div><div style="font-family:arial;font-size:small">========================================</div><div style="font-family:arial;font-size:small">






########### Campanha Ajude o Marcio! ###########</div>
<div style="font-family:arial;font-size:small"><a href="http://sosmarcio.blogspot.com.br/" style="color:rgb(17,85,204)" target="_blank">http://sosmarcio.blogspot.com.br/</a></div><div style="font-family:arial;font-size:small">







<a href="http://www.vakinha.com.br/VaquinhaP.aspx?e=195793" style="color:rgb(17,85,204)" target="_blank">http://www.vakinha.com.br/VaquinhaP.aspx?e=195793</a><br></div><div style="font-family:arial;font-size:small">========================================</div>







</div></div></div>
</div>
<br></div></div>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><span><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div><span style="color:rgb(51,51,51);font-size:x-small">Saravá,</span></div><div><span style="color:rgb(51,51,51);font-size:x-small">Renato CRON</span></div>






<div><div style="text-align:right"><font size="1" color="#333333"><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a></font></div></div><div style="text-align:right"><font size="1" color="#333333"><a href="http://twitter.com/#!/renato_cron" target="_blank">@renato_cron</a></font></div>







</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div><span style="color:rgb(51,51,51);font-size:x-small">Saravá,</span></div><div><span style="color:rgb(51,51,51);font-size:x-small">Renato CRON</span></div><div>





<div style="text-align:right"><font size="1" color="#333333"><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a></font></div></div><div style="text-align:right"><font size="1" color="#333333"><a href="http://twitter.com/#!/renato_cron" target="_blank">@renato_cron</a></font></div>






</div>
</div></div><br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div></div></div><br></div>
</blockquote></div></div></div><br></div>
<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br></div></div>André Garcia Carneiro<br>Software Engineer<br><a href="tel:%2811%29982907780" value="+5511982907780" target="_blank">(11)982907780</a>
</div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>André Garcia Carneiro<br>Software Engineer<br>(11)982907780
</div>