Я написал сценарий php, чтобы проверить, есть ли какие-либо новые файлы в папке и, если какие-либо новые файлы существуют, загрузить их на сервер. Эти файлы могут быть довольно большими. Я хочу часто запускать этот скрипт - скажем, каждые 5 минут - как запланированное задание, чтобы файлы были перемещены на сервер как можно скорее. Однако, как только сценарий уже пытается загрузить файл, я не хочу, чтобы он запускался снова, так как я боюсь, что второй экземпляр перезапишет файл, который уже загружается на сервер.
Как я могу запустить скрипт как запланированную задачу, если скрипт уже не запущен?
источник
Обычным способом является проверка какой-либо глобальной вещи (часто конкретного пустого файла) при запуске задачи. Если он существует, задача уже выполняется. Если нет, установите глобальную штуковину, делайте свое дело, снимайте глобальную штуковину, когда задача выполнена.
Это имеет проблемы, если задача не выполняется, не сбрасывая глобальную вещь. Вы можете захотеть всегда сбрасывать его в подпрограмме запуска компьютера, так как задача не может быть запущена, если вы перезапустились. Лучше найти глобальную вещь, которая исчезнет автоматически, когда задача закончится.
источник