Execução de script PHP em segundo plano usando Ant

No meu empregador atual, usamos a Ant para executar nossos scripts de compilation e preciso adicionar um alvo ao nosso arquivo build.xml que iniciará 4 scripts PHP que são os trabalhadores do Gearman em segundo plano e, em seguida, interrompa esses scripts uma vez que a compilation é feito.

Eu olhei as diretrizes “paralelas” e “daemons” (é a palavra certa?), Mas não estou experiente o suficiente com a Ant para rastrear as informações que estou faltando sobre como garantir que o script seja executado em segundo plano .

Como você não está obtendo muitas respostas, sugiro um método de baixa tecnologia que possa começar …

Use uma tarefa exec de formiga para desativar 4 processos php de fundo, escrevendo seu pid para um arquivo que inclua o número de compilation (do ambiente, presumivelmente) para identificá-lo.

Uma vez que a compilation é completa, execute o script novamente com um parâmetro de parada e use o sistema de nomeação de arquivos para encontrar identificações de processo, mate e remova arquivos de piddling. Provavelmente vale a pena ter algum tipo de limpador de emprego viciado lá também.

Não deve ser muito difícil derrubar algo que funciona até encontrar uma solução mais elegante.

Editar:

Isso é bom para você:

test.php: (este seria o script do seu trabalhador)

 

runner.sh:

 #!/usr/bin/bash FILE_TO_RUN=test.php if [ -z $TEST_RUNNERS ]; then TEST_RUNNERS=4; fi; if [ -z $BUILD_NUMBER ]; then echo "Can not run without a build number"; exit 1; fi; FILE="${BUILD_NUMBER}.run" if [ -e $FILE ]; then while read line; do echo "Killing process " $line kill -9 $line done echo "Deleting PID file" rm -f $FILE exit 0 fi < $FILE for ((i=1; i<=$TEST_RUNNERS; i++)); do echo "Setting up test runner number " $i " of " $TEST_RUNNERS; php $FILE_TO_RUN & echo "PID number: " $! echo $! >> "${BUILD_NUMBER}.run" done exit 0 
    Intereting Posts