1

Наш производственный сервер сталкивается с проблемой cron. Cron настроен на выполнение каждые 5 минут, что работает большую часть времени, однако я сталкиваюсь с проблемой, из-за которой работа может занять 6 минут. Вторая 6-минутная работа не будет выполнена, пока не пройдет 10 минут, и рано или поздно это станет проблемой.

Я исследовал написание разветвления Daemon на C для прослушивания входящих запросов, но это тоже проблематично, потому что это означало бы написание другой конечной точки API и процесс разработки.

Я нашел то, что кажется простым решением, и ищу критику / критику:

для простоты, php CLI будет выводить 1 или 0 в зависимости от того, ожидает ли работа:

<?php echo "1" ?>

Сценарий bash может проверить, есть ли какие-либо задания в очереди:

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

Другой скрипт bash работает с nohup, чтобы обеспечить выполнение вышеуказанного скрипта:

#!/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

Пожалуйста, обратите внимание, что приведенные выше простые наивные примеры иллюстрируют то, чего я пытаюсь достичь.

Моими основными причинами того, что я не хочу писать демон, является неопытность в C, боязнь бомбардировки моего рабочего сервера и нежелание устанавливать компилятор на том же сервере.

0