![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 2 Dołączył: 25.04.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
trochę szukałem na ten temat, ale nie bardzo znalazłem zadowalającą mnie odpowiedź. Mianowicie: skrypt będzie uruchamiany co 2/3 dni, a może i codziennie, ale to nie ważne. Skrypt, będzie pobierał z bazy 'długi TEXT'. Ilość rekordów będzie z dnia na dzień rosła. Następnie treść zostanie przefiltrowana, zostaną wyciągnięte wszystkie linki. Ostatnim krokiem, każdy link zostanie sprawdzony curlem czy działa itp. Przy małej ilości wpisów w bazie, nie ma problemu, jednak przy większej już problem się pojawi. set_limit_time, tutaj nic nie pomoże, nawet gdy będzie resetowany w pętli, przy dłuższym czasie wykonywania pliku i tak serwer się wyłoży. Chodzi głównie o porcjowanie zapytań, na jakiej zasadzie to zrobić? header(), czy inne tego typu funkcje, w przypadku CRON'a nie wchodzą w grę. Ma ktoś jakieś rozwiązanie do tego? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Nie, nie ma takiej możliwości *. Ewentualnie możesz zadanie uruchamiać raz dziennie w nieskonczonej pętli. W niej zawrzesz pobieranie paczek danych, sprawdzanie, aktualizację. W momencie gdy skrypt pobierze 0 rekordów będzie to oznaczało, że zakończył pracę. Wówczas możesz dać exit. Pamiętaj tylko o wyzerowaniu czasu maksymalnego wykonania skryptu by mógł pracować w nieskonczoność (czyli do exit'a).
* W sumie możesz to obejść. W momencie zakończenia pracy zapisuj do pliku aktualny dzień (date('j')). Przy uruchomieniu zadania sprawdzaj najpierw czy wartość z tego pliku jest != date('j'). Jeśli tak - niech pracuje. Jeśli nie - dajesz exit. Zadanie fizycznie i tak będzie uruchamiało skrypt, ale przynajmniej nie będzie niepotrzebnie odpytywało bazy danych. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.10.2025 - 06:35 |