PHP скрипт, который работает непрерывно и одновременно с cronjob - PullRequest
2 голосов
/ 23 ноября 2011

У меня есть 3 скрипта, которые делают кое-что.Я хочу запускать их непрерывно и одновременно.

Скажем, например: первый сценарий занял 30 минут, чтобы закончить.Второй - 20 минут.Третье - 5 минут.

Так что мне нужно, чтобы каждый из них запускался сразу после его завершения.3 скрипта делают UPDATE в одной и той же БД, но они должны работать отдельно.Они могут бегать вместе сразу, но не пару раз (мой английский отстой, извините за это).Давайте объясним, что я имею в виду на примере:

firstScript.php is running
secondScript.php is running
thirdScript.php is running

firstScript.php trying to start but it still running. Wait.(till finish)

Может быть, какой-то сценарий оболочки сделает эту работу, но как?

Ответы [ 2 ]

3 голосов
/ 23 ноября 2011

Создайте скрипт bash, который принимает один аргумент, и сделайте так:

if [ -f /tmp/$1 ]
then
    echo "Script already running"
else
    touch /tmp/$1
    php $1
    rm /tmp/$1
fi

Установите cron для запуска этого скрипта и передайте ему имя php-скрипта, который вы хотите запустить.

0 голосов
/ 23 ноября 2011

Вы можете выполнить команду оболочки незадолго до смерти сценария php.Пример:

while($i < 1000)
{
$i++;
}
shell_exec("bin/php.exe some_script.php");

Если вы работаете с учетной записью общего хостинга, это может не сработать из-за проблем безопасности.обратите внимание, что «bin / php.exe» необходимо отредактировать для вашего сервера, укажите, где установлен ваш php.

...