Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP] Zdarzenie w tle
Forum PHP.pl > Forum > Przedszkole
desavil
Witam,

Chciałbym wykonać pewne zdarzenie w tle, dokładniej chodzi mi o to że mam sobie np. jakiś plik o nazwie wtle.php, który będzie wykonywał się określoną ilość czasu, jego zawartość to np. pętla z kilkaset tysiącami przebiegów, lub też po prostu funkcja: sleep(10). Chodzi o to, że jego zawartość będzie wykonywała się kilka/kilkadziesiąt sekund.
Plik wtle.php znajduje się na serwerze A, natomiast drugi plik o nazwie wykonaj.php znajduje się na serwerze B, jego zawartość to po prostu otwarcie pliku wtle.php za pomocą funkcji CURL. Problem polega na tym, że jeżeli użytkownik wejdzie na stronę wykonaj.php to jego strona będzie się ładowała tak długo jak wykonuje się plik wtle.php i tego chciałbym uniknąć.

Miałoby to działać na zasadzie: wchodzę na plik wykonaj.php on daje sygnał plikowi wtle.php, aby się wykonywał. Później chcę do tego jeszcze wprowadzić animację w JS, która po uruchomieniu pokazuje komunikat "trwa ładowanie", po wykonaniu skryptu komunikat "wykonano".
Oczywiście wszystko powinno być zabezpieczone w taki sposób, jeżeli ktoś odświeży stronę to plik wtle.php nie będzie wykonywał się od początku, tylko będzie kontynuowany poprzednio uruchomiony przebieg. Z zabezpieczeniem to raczej nie powinien być wielki problem bo jeżeli dobrze myślę to wystarczy podczas uruchomienia dać do bazy zapytanie jakieś ze statusem 1-uruchomiono, a na końcu pliku wtle.php skrypt, wykonujący update na statusie zmieniając go na 0-wykonano.

Prosiłbym o jakąś podpowiedź jeżeli chodzi o to wykonywanie w tle, jak mógłbym takie coś osiągnąć.
Kolejne pytanie, jak w prosty sposób uruchomiłbym plik wtle.php w przeglądarce, następnie zamknął czy on na serwerze tak naprawdę wykonuje się do końca, czy też po zamknięciu karty w przeglądarce zostanie zatrzymany na serwerze?

Pozdrawiam!
turbiński
Jeżeli chodzi o puszczenie skryptu w tle to zainteresuj się ajaksem z jQuery. Jest szalenie przyjazny w obsłudze. Kilka linijek i wtle.php śmiga... w tle. wink.gif

Co do drugiego pytania to Ci nie pomogę bo nie mam pojęcia.

EDYTA:

Co do działania skryptu po zamknięciu strony/karty/przeglądarki: http://php.net/manual/en/function.ignore-user-abort.php, tutaj cały temat na stackoverflow: http://stackoverflow.com/questions/5997102...-closing-a-page.
desavil
Dzięki tego mi trzeba było - ignore_user_abort smile.gif
Mam nadzieję, że w CURL też się sprawdzi, jak ustawię limit połączenia na 1-2s.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.