|
From: | Robson Alexandre |
Subject: | Estrutura de script para criar fila de espera |
Date: | Thu, 17 Sep 2015 14:29:33 +0000 |
Bom dia a todos,
gostaria de saber a opinião dos colegas da lista e inclusive sugestões para seguinte demanda que estou a decidir qual a melhor maneira de se fazer.
Uma rotina que é disparada por um usuário qualquer e caso esta rotina já esteja em execução, cria-se uma fila de espera q é executada imediatamente após o término da anterior.
Bom, parece simples, é só colocar o script da rotina para chamar o próximo caso haja fila de espera, mas qual seria a melhor forma de realizar esse script?
Pensei em algo do tipo
cat <<EOF > script
#!/bin/bash
dir=/caminho/app
ps -C $0 || {
echo Executando rotina...
sleep 20 #simulando tempo de execução da rotina
queue=( $(wc -l $dir/queue) )
[ ${queue[0]} -gt 0 ] && at now + 1 minutes <<< "$(sed '1!d' $dir/queue; sed -i '1d' $dir/queue)"
} && {
echo $0 $* >> $dir/queue
}
EOF
cat <<EOF > queue
/caminho/app/script param1 param2 paramN
/caminho/app/script paramY paramX paramN
/caminho/app/script parama paramb paramN
EOF
Gostaria de opiniões e sugestões sobre desde o método para verificar se a rotina já está em execução (ps -C $0), até o uso do at para agendar o próximo da fila.
Alguém já fez algo parecido? Já tem alguma coisa implementada?
Atenciosamente
Robson Alexandre
[Prev in Thread] | Current Thread | [Next in Thread] |