Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Cykliczne odświeżanie skryptu
Forum PHP.pl > Forum > PHP
skorpionek93
Witam. Mam następujący problem. Napisałem aplikację PHP odpalaną w przeglądarce, która co około minutę pobiera dane z pewnej strony i zapisuje wybrane na podstawie wzoru części do bazy. Problem jest właśnie z odświerzaniem tej strony co minutę (około, dokładność w tym wypadku nie ma większego znaczenia).
Próbowałem zarówno poleceniem
  1. <meta http-equiv="refresh" content="55" >

jak i funkcją header oraz (łopatologicznie) za pomocą dodatku do Firefoxa "Auto Refresh.
Dodałem również na początku kodu funkcję:


I każda z tych metod działa ale tylko do czasu. Bywa, że zagle "zacina się" po 20 minutach, czasem po 2 godzinach, czasem po 8 godzinach ale problem polega na tym, ze nie da się włączyć aplikacji i wyjść na cały dzień żeby ona sobie działała sama tylko trzeba kontrolować czy nie przestała działać. Po prostu aplikacja się odświerza ale nie kończy swojego działania tylko na faviconie w górnej części przeglądarki (gdzie są wyświetlone karty) jest standardowe kręcące się kółeczko odświerzania. Wiem, że najłatwiej byłoby to zrobić za pomocą CRONa ale niestety pracuję na XAMPPie windowsowym i nie mam takiej możliwości. Próbowałem też z systemowym Harmonogramem Zadań ale nie mogę go odpowiednio ustawić i w przeglądarce wyrzuca mi surowy kod skryptu.

Prosiłbym o pomoc w rozwiązaniu tego problemu. Tak jak pisałem, dokładność czasowa nie ma większego znaczenia, może się czasem odświerzyć co 40 sekund, czasem co 80 sekund, nawet może czasami pominąć jedno odświeżenie, to nie jest żaden problem. Byle tylko nie było sytuacji gdy przestaje działać nagle i jest konieczne ręczne odświeżenie. Przypuszczam, że ta zawiecha może być spowodowana funkcją file_get_contents, która nie dostając odpowiedzi po prostu na nią czeka i nie pozwala załadować się instrukcjom odświerzającym. Dla ułatwienia dodam, że aplikacja jeżeli działa za długo to może zostać przerwana w dowolnym momencie bez żadnego uszczerbku dla zbieranych danych bo one się po prostu uzupełnią przy kolejnym odświerzeniu.

Z góry dziękuję za pomoc i dobre chęci!

trueblue
A jak wywołujesz skrypt harmonogramem zadań?
http://blog.meloniq.net/2010/01/21/jak-uru...em-cron-na-win/
sadistic_son
Po pierwsze... odświeŻ kurna! Aż oczy bolą jak się patrzy na Twoje "odświerzanie"....

Też mi się wydaje, że za pomocą harmonogramu windows można problem rozwiązać. Wywala Ci surowy kod bo pewnie odwołujesz się do pliku php w harmonogramie np. C:/webserv/httpd/index.php zamiast do adresu http tj. http://localhost/index.php. Mam rację?
skorpionek93
Faktycznie źle używałem harmonogramu zadań bo odwoływałem się bezpośrednio do pliku z kodem. Dziękuję kolegom za szybką reakcję i przepraszam za ortografię smile.gif (w sumie sam nie wiem dlaczego raz pisałem dobrze, a raz przez "rz") smile.gif
Pozdrawiam i życzę miłego weekendu smile.gif


PS. Działa ładnie ale jak mówi jedno z praw Murphiego, każde rozwiązanie rodzi nowy problem smile.gif
Za każdym razem jak wywoływany jest skrypt (czyli co minutę), na ekranie pojawia się czarna konsola php (na czas wykonywania skryptu czyli jakiej 3 sekundy) i znika. Jest to strasznie uciążliwe bo praktycznie uniemożliwia normalne korzystanie z komputera. Da się to jakoś wyłączyć?

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.