Napisałem skrypt php, aby sprawdzić, czy w folderze są jakieś nowe pliki, a jeśli jakieś istnieją, prześlij je na serwer. Te pliki mogą być dość duże. Chcę często uruchamiać ten skrypt - powiedzmy co 5 minut - jako zaplanowane zadanie, aby pliki zostały jak najszybciej przeniesione na serwer. Jednak gdy skrypt próbuje już przesłać plik, nie chcę, aby został ponownie uruchomiony, ponieważ obawiam się, że druga instancja nadpisze plik, który jest już przesyłany na serwer.
Jak mogę uruchomić skrypt jako zaplanowane zadanie, chyba że skrypt jest już uruchomiony?
źródło
Zwykle sposób polega na przetestowaniu globalnej rzeczy (często określonego pustego pliku) podczas uruchamiania zadania. Jeśli istnieje, zadanie jest już uruchomione. Jeśli nie, ustaw globalną rzecz, rób swoje rzeczy, rozłącz globalną rzecz po zakończeniu zadania.
Ma to problemy, jeśli zadanie nie powiedzie się bez rozbrojenia globalnej sprawy. Zawsze możesz chcieć go rozbroić w procedurze uruchamiania komputera, ponieważ zadanie nie może zostać uruchomione po ponownym uruchomieniu. Lepiej jest znaleźć globalną rzecz, która zniknie automatycznie po zakończeniu zadania.
źródło