2012-02-03 1 views
3

У меня есть скрипт, запущенный на сервере, который вызывает функцию в классе. Это длинная функция с импортируемыми данными foreach, которая работает в течение нескольких часов и, по оценкам, продолжает работать еще на пару.Обновление PHP-файла, вызываемого из cron

Теперь меня попросили сделать обновление по этому файлу (по другой функции). Мой вопрос: если я обновляю это на сервере, это повлияет на работу текущего скрипта? Как это работает, сервер кэширует эти инструкции, и новый файл не повлияет на них? Или это будет? Я смущен!

ответ

6

Если сценарий не напомнил ему, что он включен, он не будет обновляться. При первом вызове скрипта он находится в памяти. Но если у вас есть рекурсивность, и она снова включается, то да, это будет обновленная версия.

1

Как @Iznogood написал, что вы не можете знать, перезагрузится ли сценарий, так зачем рисковать? Вы можете использовать что-то вроде следующих для запуска обновления только после выполнения закончено:

while ps -p SCRIPT_PID; do sleep 1; done ; svn up /path/to/script 

Вдохновляет: https://stackoverflow.com/a/7485831

Смежные вопросы