Я запускаю сценарий, который постоянно работает с моей базой данных. Однако необходимо перезапускать скрипт раз в час. Очевидно, я не могу сделать это автоматически. Я не хочу использовать демон, сейчас это слишком сложно для меня. Более простое решение - использовать задание cron, но самый большой недостаток в том, что он не останавливает последний скрипт. Скрипт выполняется в бесконечном цикле while(true)

Однако возможно ли это, если я сделаю функцию в скрипте, скажем,

function exitScript()
{
  exit;
}

А затем на работе Cron, если я сделаю что-то вроде

php /home/Path/public_html/webservice/myScript.php exitScript and then
php /home/Path/public_html/webservice/myScript.php

Каким будет формат и как я могу запускать и то, и другое, используя задание cron, или создать другой PHP, который это сделает?

Мне нужен совет.

1
Muhammad Umar 19 Апр 2013 в 11:57
Выход 100% ЗАКОНЧИВАЕТ все ваши скрипты php. Таким образом, ваш crontab должен запускать его снова каждый час.
 – 
Svetoslav
19 Апр 2013 в 11:59
Вы можете объяснить с помощью кода, что вы имеете в виду?
 – 
Muhammad Umar
19 Апр 2013 в 12:04

1 ответ

Лучший ответ

Вот небольшой трюк, который вы можете использовать ...

1-й набор заданий cron для запуска каждый час.

* */1 ..... cronjob.php

2-й В начале вашего скрипта определите 1 константу со временем:

define('SCRIPT_START_TIME', time());

3-й. В вашем сценарии выхода настройте проверку условий для выхода, если от этой константы до текущего времени прошло 59 минут .. :)

function exitScript()
{
  if((time() - SCRIPT_START_TIME) > 59*60){
     exit();
  }
}

4-е место каждый раз, когда LOOP запускает сценарий выхода.

1
Svetoslav 19 Апр 2013 в 12:13