É um script bash uma alternativa sensata para uma tarefa cron ou daemon C

1

Nosso servidor de produção está com problemas no cron. Cron é definido para executar a cada 5 minutos, o que funciona na maioria das vezes, no entanto estou encontrando um problema em que um trabalho pode levar 6 minutos para processar. Um segundo trabalho de 6 minutos não será acionado até 10 minutos e, mais cedo ou mais tarde, isso será um problema.

Eu investiguei escrevendo um Daemon de bifurcação em C para escutar as solicitações recebidas - mas isso também é problemático porque significaria escrever outro endpoint da API e mastigar no tempo de desenvolvimento.

Encontrei o que parece ser uma solução simples e estou procurando críticas / críticas:

por questões de simplicidade, uma CLI do php produzirá um 1 ou um 0, dependendo da existência de uma tarefa em espera:

<?php echo "1" ?>

Um script bash é capaz de verificar se há alguma tarefa na fila:

#!/bin/bash
var=$(php -f ../readPhpOutput/testOutput.php)
if [ "$var" -eq "0" ]
    then
    echo "input zero"
else
    echo "input not zero"
fi
sleep 10

Outro script bash está sendo executado com nohup para garantir que o script acima esteja em execução:

#!/bin/bash
while true
do
    value=$(ps -A | grep [r]eadPhpOutput)
    echo "grep output is: $value"
    if [ -z "$value" ]
        then /bin/bash ../readPhpOutput/./readPhpOutput.sh &
    fi
    sleep 5
done

Por favor, note o acima são exemplos simples e ingênuos para ilustrar o que eu estou tentando alcançar.

Minhas principais razões para não querer escrever um daemon são inexperiência com C, medo de bifurcar o meu servidor de produção e uma relutância em instalar um compilador no mesmo servidor.

    
por pcgben 20.12.2017 / 09:44

0 respostas