@alexanderks7

Существует ли идентификатор выполнения скрипта php?

PHP скрипт, запускаемый через Cron, устанавливает на определенные записи в таблице MySQL флаг, что они обрабатываются (меняет булевское значение через UPDATE на случай, если не успеет отработать до того как Cron запустит скрипт еще раз). В случае, если выполнение скрипта будет прервано, записи могут остаться заблокированными. Есть ли какой-то идентификатор php, чтобы можно было записать его для таких записей и потом проверить, ведется обработка, или выполнение скрипта прервано?
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
SagePtr
@SagePtr
Еда - это святое
К примеру, писать туда время начала работы скрипта. Если скрипт дёргается только через cron и никак иначе, то достаточно брать кол-во секунд (функция time) - два раза в одну и ту же секунду скрипт запущен не будет. Заодно при таком подходе можно реализовать истечение блокировок (записи, заблокированные более давно, чем N секунд назад, условно считать незаблокированными)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev
software engineer
Стандартный способ - не просто указать что "скрипт работает", а сохранить идентификатор процесса этого скрипта.
Таким образом, вы сможете не только увидеть аттрибут, что "скрипт работает", а считать PID и проверить - есть ли такой процесс в памяти, и является ли он именно вашим php скриптом.
Ответ написан
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
В случае, если выполнение скрипта будет прервано

по какой причине? Если ошибки, то это решается через try catch. Поймали ошибку - записали, что была ошибка, а еще лучше инкрементировали количество ошибок и записали текст ошибки, что бы ручками потом разобраться.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы