[Cascavel-pm] Controle de processo em perl
kleber
payback em oi.com.br
Quarta Maio 14 05:55:09 PDT 2008
Ok Mota , Agradeço sua atenção.
Vou tentar descrever meu problema.
Eu estou escrevendo um sistema e estou trabalhando com 3 linguagens:
Cobol , javascript , perl.
Basicamente estas linguagens atuam da seguinte maneira :
Javascript - Realiza validação dos dados ( formulário ) na máquina do
cliente.
Perl - Recebe os dados do formulário 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.
Ao realizar alguns testes com uso concorrente ( duas ou mais pessoas
acessando a
mesma rotina perl ) , verifiquei que o arquivo html gerado pelo cobol do
usuário A estava sendo direcionado para usuário B.
Resolvi este problema criando um arquivo nulo e testando sua existência
para execução de um processo perl.
Entretanto , tenho consciência de que não é a melhor solução pois , caso
exista algum problema na rotina perl e o arquivo de controle ou nulo não é
eliminado , todas as solicitações vão ficar dependuradas.
Pesquisando este assunto , verifiquei a possibilidade de utilizar a
alternativa de controle de processo ( função waitpid ou outro processo ).
O objetivo é executar uma rotina em perl sem uso concorrente ou seja ,
enquanto ela estiver sendo executada , todas as solicitações de execução
desta rotina devem aguardar.
Vou dar um exemplo prático deste problema :
O sistema que estou escrevendo realiza autenticação do usuário.
Ou seja , o usuário informa de seu código de acesso e senha , envia os dados
ao perl que grava em um arquivo texto para passagem ao cobol.
O cobol verifica se os dados estão corretos e grava arquivo de autorização
de acesso ( html ) que contém informações tais como : quais sistemas o
usuário pode acessar , qual o nível de autorização deste usuário ( acessa
todas as funções ou módulos do sistema ) , qual o status do usuário (
privilegiado , normal , etc ).
Este arquivo de autorização de acesso pertence ao usuário A e não pode
ser direcionado para o usuário B.
Por isso preciso garantir que , enquanto um processo perl esteja sendo
executado , todos os demais precisam aguardar sua conclusão.
Espero ter descrito com mais clareza minha necessidade.
Um abraço ,
kleber
Nota - Minha capacidade de programação em perl é modesta. Estou me
orientando pelo livro PERL COMO PROGRAMAR - DEITEL.
----- Original Message -----
From: "Luis Motta Campos" <luismottacampos em yahoo.co.uk>
To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
Sent: Tuesday, May 13, 2008 5:56 PM
Subject: Re: [Cascavel-pm] Controle de processo em perl
kleber wrote:
> Estou precisando executar um script em perl e garantir que sua
> re-execução só se realize após o encerramento da rotina em andamento
> ou seja a rotina pode ser acionada pôr vários usuários porém deve ser
> executada de forma individual ou única.
>
> Alguém sabe coma fazer isto ?????????????
Eu sei como garantir execução individual;
Também sei como garantir execução única;
O meu problema é que eu sempre achei que os dois conceitos fossem
incompatíveis: se todo mundo pode executar uma instância, não tem como
garantir que tem apenas uma instância rodando, e vice-versa.
Agora, o bom mesmo é garantir que todas as execuções possam acontecer
simultâneamente, sem que elas se afetem umas às outras: prefira
paralelismo à exclusão mútua.
Normalmente, quando requisitos como este aparecem, a primeira pergunta
que eu faço é: o que você está tentando fazer, e por que você acredita
que deve garantir exclusão mútua dos processos? Normalmente, a exclusão
não é necessária, ela é sim um erro de projeto no seu sistema.
Aguardo mais informações sobre o problema, por favor.
Putamplexos!
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}
_______________________________________________
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