Kleber,<br><br>Vc cometeu alguns erros graves em seu controle...<br><br>Jamais coloque um loop infinito baseado em uma condição, sem ter no mínimo um sleep no intervalo, ou seu processo irá comer tanta cpu que com 3 ou 4 tentativas terá que reiniciar seu windows ...<br>
<br>Apenas estruturando a ideia...<br>#------------------<br>Abrir arquivo (como faria normalmente)<br>enquanto as tentativas forem menores que X<br>&nbsp;&nbsp; Tentar um flock<br>&nbsp;&nbsp; se não conseguir<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; espera uma fracao de segundo<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tenta até X vezes<br>&nbsp;&nbsp; fim-se<br>fim enquanto<br>se tentativas &gt;= X<br>&nbsp;&nbsp;&nbsp;&nbsp; falhou<br>&nbsp;&nbsp;&nbsp;&nbsp; tchau!<br>fim se<br><br>processamento desejado<br><br>flock liberando<br>fechar arquivo<br>#----------------<br><br>O contexto é este, mas por falta de tempo momentaneo, vou deixar vc com a ideia e a referencia do Fcntl e/ou POSIX (<a href="http://perldoc.perl.org">perldoc.perl.org</a>), que possuem exemplos disto.<br>
<br>No cpan existe uma versão interessante também, que pode ser utilizada através de um mini-modulo, apesar de eu ter preferido fazer de novo, baseado em um pidfile no *nix...<br><br><br>Sds,<br>Marco Antonio<br><br><div class="gmail_quote">
2008/6/17 kleber &lt;<a href="mailto:payback@oi.com.br">payback@oi.com.br</a>&gt;:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Olá Pessoal ,<br>

<br>
Estou executando uma função em perl de forma não concorrente ou seja<br>
ela só pode ser reexecutada após encerrar a primeira instância.<br>
<br>
Atualmente estou fazendo assim :<br>
<br>
use warnings;<br>
use strict;<br>
use CGI qw( :standard );<br>
use Fcntl qw( :flock :DEFAULT );<br>
#<br>
######## &nbsp; &nbsp; &nbsp;Permite executar um script pôr vez<br>
#<br>
denovo:<br>
if ( -e &quot;c:\\payback\\cgiaindx.nul&quot; ) { goto denovo; }<br>
sysopen( TASK, &quot;c:\\payback\\cgiaindx.nul&quot;, O_WRONLY|O_EXCL|O_CREAT )<br>
or warn ( goto denovo );<br>
flock( TASK, LOCK_EX ) &nbsp;or warn ( goto denovo );<br>
#<br>
######### &nbsp;instruções em perl de uma função qualquer<br>
#<br>
flock( TASK, LOCK_UN );<br>
close( TASK );<br>
unlink( &quot;c:\\payback\\cgiaindx.nul&quot; );<br>
exit;<br>
#<br>
<br>
Gostaria de saber se é possível atingir este mesmo objetivo alocando um<br>
número de processo a variável que controla o pid ( PROCESSO_ID ) E TESTANDO<br>
SUA DISPONIBILIDADE ??????????????????????<br>
<br>
TALVEZ ATÉ MESMO UTILIZANDO UMA VARIÁVEL DE AMBIENTE &nbsp;E TESTANDO SEU STATUS<br>
?????????<br>
<br>
OU UTILIZANDO OUTRO MÉTODO DE CONTROLE ??????????????????<br>
Nota - Meu conhecimento de perl é limitado.<br>
<br>
Agradeço a atenção dispensada ,<br>
<br>
kleber<br>
<br>
_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br>
</blockquote></div><br>