У меня есть сценарий, который слушает сервер бессмысленных данных и отвечает соответственно. Хотя это, как предполагается, не останавливается, вчера вечером это сделало. Теперь я хочу выполнить задание крона каждую минуту, чтобы проверить, работает ли сценарий, и запустите его если нет.
Вопрос, как я проверяю, работает ли конкретный сценарий все еще?
Некоторые решения были отправлены здесь, но это - все для Linux, в то время как я ищу решение для Windows. Какие-либо идеи?Спасибо.
Быстрый и грязный обходной путь для сценария может заключаться в обновлении строки в базе данных со столбцом даты, установленным на CURRENT_TIMESTAMP. Попросите второй сценарий cron проверить, является ли метка времени в этой строке недавней.
Вот что я обычно делаю:
Однако в этом есть проблема: что, если сценарий умирает и не удаляет файл состояния?
Вы можете добавить небольшая проверка сохранения, например:
У меня была та же проблема, и я решил ее с помощью этого кода:
file_put_contents("status.txt","ping");
Я поместил ее в цикл своего скрипта
, поэтому я проверяю дату последнего изменения файла, чтобы увидеть, активен ли скрипт
, чтобы не перегружать HD, вы можете сделать что-то вроде этого:
$i++
if( $i%100 == 0)
file_put_contents("status.txt","ping");
это будет записывать файл, когда $ i == 100 или 200 или 300 и т. д.
это обходной путь