shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Limitar numero de processos em paralelo


From: Leonardo Ayres
Subject: Re: Limitar numero de processos em paralelo
Date: Fri, 22 Aug 2003 14:23:39 -0000
User-agent: eGroups-EW/0.82

Achei a solução bem simples e elegante, mas não sei bem se serve no 
meu caso. Deixe eu detalhá-lo melhor.

Tenho um script que lê os arquivos de um diretório e chama um sql-
loader passando como parâmetro o nome do arquivo a ser carregado na 
base. Como o processo está um pouco lento, pensei em melhorar a 
performance colocando uns 3 sql-loader carregando arquivos diferentes 
em paralelo. Como eu faria para passar um paramêtro diferente para 
cada "chamar" do seu script? Só criando um vetor com os nomes dos 
arquivos? E como saber o próximo?

Leonardo

--- Em address@hidden, César A. K. Grossmann 
<cesarakg@b...> escreveu
> --- Em address@hidden, "Leonardo Ayres"
> <leonardo.ayres@u...> escreveu
> > 
> > O que eu quero é executar três em paralelo, e quando qualquer um 
dos 
> > processos terminar, começar a executar mais um.
> 
> Eu imaginei a seguinte solução:
> 
> --//--
> #!/bin/bash
> 
> if [ "$1" == "" ]
> then
>   $0 chamar&
>   $0 chamar&
>   $0 chamar&
> else
>   processo
>   $0 chamar
> fi
> --//--
> 
> A idéia é simples: se o script for chamado sem parâmetros, então ele
> chama três instâncias de si mesmo em segundo plano, com o parâmetro
> "chamar" (ou qualquer coisa, é só para não cair no primeiro braço do
> "if"). Quando o script é chamado com um parâmetro, é por que ele já
> está em segundo plano, então ele pode chamar o processo em questão, 
e,
> quando o processo for interrompido, ele vai se chamar novamente,
> gerando um loop infinito (se a recursividade estiver consumindo 
muita
> memória, dá para colocar um laço while infinito no lugar da chamada
> recursiva).
> 
> Não testei a solução, mas imagino que funcionará...
> 
> []s
> --
> César A. K. Grossmann
> http://www.LinuxByGrossmann.cjb.net/


reply via email to

[Prev in Thread] Current Thread [Next in Thread]