Witam!
Potrzebuję czegoś co w połowie wykonywania skryptu zatrzyma się na np. 5minut po tych pięciu minutach zostanie sprawdzony warunek i jeżeli jest spełniony to skrypt wykonuje się dalej a jeżeli nie to znowu czeka. Pierwsze co przychodzi do głowy to:
<php
$petla = true;
do
{
// Pobierz z bazy danych z konkretnej tabli konkretne pole
if( pole_zostało_wypełnione ) {
break;
}
Sleep(300);
} while($petla);
// dalsze instrukcje
Może to nie intuicyjne ale postaram się bardziej wyjaśnić. Powyższy skrypt jest uruchamiany poprzez cron'a ponieważ musi się wykonywać cyklicznie jeżeli warunek nie zostanie spełniony czyli skrypt się zapętli to do bazy zostaje zapisana informacja na ten temat i jeżeli admin się zaloguje to wyskakuje mu komunikat o zapętleniu skryptu admin wpisuje odpowiednie dane do pola i i skryp wykrywa zapis do tego pola i pracuje dalej. Wiem że po co ma czekać i się zapętlać skoro może wykonać się dopiero jak admin uzupełni pole ale czy taka sytuacja jest możliwa do wykonania ? Nie wiem dlaczego Sleeep nie działa poprawnie, tzn. przykładowy kod:
<php
Sleep(2);
echo "a<br/>";
Sleep(2);
echo "a<br/>";
Sleep(2);
echo "a<br/>";
Sleep(2);
echo "a<br/>";
Sleep(2);
echo "a<br/>";
W rezultacie powinienem co dwie sekundy otrzymywać literkę a na ekranie a otrzymuję wszystkie po zsumowaniu czasów. Uruchamiać przykładu z Sleep z crona nie próbowałem.
Sprawa kolejna to czy takie zapętlenie skryptu niemożliwi cronowi wykonanie innych zadań ?