[Cascavel-pm] Controle de processo em perl

Marco A P D'Andrade mdacwb em gmail.com
Domingo Abril 8 19:03:54 PDT 2007


Kleber,

Este não é o melhor caminho, mas se vc é amante da natureza e estradas
tortuosas ;)  verifique o IPC::Open2 ou IPC::Open3

http://perldoc.perl.org/IPC/Open3.html

Mas volto a sugerir... tente criar uma rotina em cobol que jogue os
dados desejados em tela (como um relatorio), e faça a leitura via
script. Vc verá que é a maneira mais simples e eficiente.

Sds,
Marco Antonio

Em 08/04/07, KLEBER<payback em oi.com.br> escreveu:
> Caro Marco ,
>
> Agradeço sua atenção.
>
> Em perl , é possível definir um numero de identificação de processo para uma
> determinada rotina ?
> Se fôr possível  , ficaria simples fazer o que preciso.
> Pôr exemplo (  pensando alto ) :
> #
> # Rotina de autorização de usuario
> #
> Define pid com 250
> testa se pid 250 está disponível
> Se não disponível => aguarda disponibilidade
> Se disponível => executa rotina
>
> Me perdoe se estou falando bobagem ( rrrrssss...... ) !!!!!!!!!!!!!!!!!!
>
> Abraços ,
>
> kleber
>
> ----- Original Message -----
> From: "Marco A P D'Andrade" <mdacwb em gmail.com>
> To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
> Sent: Sunday, April 08, 2007 2:09 AM
> Subject: Re: [Cascavel-pm] Controle de processo em perl
>
>
> Kleber,
>
> A alguns anos atrás, quando iniciei em Perl eu tinha um problema
> similar ao seu... Sistema legado em Cobol e a necessidade de interação
> com web.
>
> Minha abordagem não foi o  uso de arquivos para transferência entre as
> plataformas, mas argumentos e saidas em tela, sem formatação...
>
>
> #-- A grosso modo o codigo ficaria assim...
> unless ( open(F, "cobrun text.int XXYYZZ |") ) {
>    # informo usuario do erro
>    print "<h1>Falha ao ler dados: $!</h1>";
>    # Registro nos logs do apache (ou arquivo de log) o erro para depuracao
>    print STDERR "Id Sessao XX -> parametros: $ENV{QUERY_STRING} ->
> Falha ao ler dados: $!\n";
>    exit 1;
> }
>
> while ( defined( $_ = <F> ) ) {
>    print $_;
> }
> close(F);
>
> Claro... não recordo mais como eu recebia os parametros no cobol
> (MF-3.1) ... mas pelo que lembro, seria algo trivial, assim como a
> chamada de um modulo a partir de um menu principal...
>
> Como alternativa a abordagem do Wendel seria a mais produtiva, e em
> casos de perda de sincronismo, onde o processo não exclui o arquivo,
> pode ser facilmente contornado com um script em cron, apagando depois
> de X dias:
>
>    find <PATH_TEMP> -name <MASK_TEMP> -cmin +60 | xargs rm
>
> cmin => change minutes > 60
> xargs => comando para separar em argumentos por arquivo
>
> ...
>
>
> A proposito...  para vc utilizar wait, tem de saber qual é o PID, e
> ele deve estar associado ao seu processo. Uma complexidade grande que
> pode ser contornada utilizando-se simplesmente o open que citei acima.
> Esta é apenas uma das maravilhas do Perl !
>
>
>
> Espero ter contribuido um pouco.
>
> Sds,
> Marco Antonio
>
> Em 07/04/07, Eden Cardim<edencardim em gmail.com> escreveu:
> > On 4/6/07, KLEBER <payback em oi.com.br> wrote:
> > > Eu desenvolvo sistema e estou trabalhando com 3 linguagens:
> > >                             Cobol , javascript , perl.
> > >
> > > Basicamente estas linguagens atuam da seguinte maneira :
> > >
> > >           Javascript - Realiza validação dos dados ( formulario ) na
> > > máquina
> > > do
> > >                             cliente.
> > >           Perl - Recebe os dados do formulario do cliente , grava em um
> > > arquivo
> > >                    texto para entrada de dados no cobol , executa um
> > > programa
> > >                     cobol através do comando system e envia a resposta
> > > ao
> > > cliente.
> > >          Cobol - Lê arquivo de entrada de dados , realiza manutenção na
> > > base
> > >                      de dados e gera um arquivo html sobre o status do
> > >                       processamento.
> > >                      A resposta enviada pelo perl ao cliente está neste
> > > arquivo html.
> >
> > Lembre-se que validação com Javascript é para economizar banda e não
> > garantir segurança. O usuário não é obrigado a executar nada em
> > Javascript (afinal, a máquina é dele, ele executa o que quiser). Se
> > você não fizer validação server-side, o cliente vai poder submeter
> > dados arbitrários para a sua base de dados. Combine isso com o fato de
> > que você está usando uma chamada system() para transmitir estes dados
> > a outro programa e qualquer script-kiddie vai conseguir furar sua
> > segurança.
> >
> > --
> > Eden Cardim
> > Instituto Baiano de Biotecnologia
> > Núcleo de Biologia Computacional e Gestão de Informações Biotecnológicas
> > Laboratório de Bioinformática
> > --
> > "you seem to think that 'close enough' is close enough...
> > please learn to be 'literal' around programming."
> > merlyn - on irc.freenode.net#perl
> > _______________________________________________
> > Cascavel-pm mailing list
> > Cascavel-pm em pm.org
> > http://mail.pm.org/mailman/listinfo/cascavel-pm
> >
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>


Mais detalhes sobre a lista de discussão Cascavel-pm