Я не могу понять это.
У меня есть скрипт типа валидатора, который проверяет определенные файлы на моем сервере (проверяет, существует ли он, его содержимое и т. Д.).Я хочу, чтобы он работал непрерывно только с одним экземпляром, не более.Текущее решение, которое у меня есть, похоже, не работает, я думаю, из-за тайм-аутов (возможно, и по другим причинам).Для каждого файла, который я проверяю, я устанавливаю таймаут php на 60 секунд.У меня это вверху скрипта:
$trigger_file2 = 'path/to/a/randomfile';
if (file_exists($trigger_file2)){
//another script is working, exit
exit;
}
// create file inside app
$handle = fopen($trigger_file2, 'w');
fwrite($handle, '0');
fclose($handle);
В конце скрипта я просто использую unlink () в файле триггера.Из-за возможных таймаутов и, возможно, других причин, файл триггера не всегда удаляется и вызывает проблемы.Я также попытался добавить код, который проверяет время изменения файла триггера и, если он старше 10 минут, удаляется, но это действительно неэффективно, так как проблема возникает часто.
Любые идеи о том, как обойтиэтот?Я думал о том, чтобы сделать что-то с PID для запуска скриптов, но я использую CakePHP для скрипта, поэтому каждый процесс выглядит так, как будто он использует index.php (я думаю).
Любые другие идеи о том, как это сделать?Помощь будет очень признательна.