[php] optymalnie xml z mysql

0

Piszę obecnie strone, która pobiera dane w postaci xml z innego serwera i tu robi się olbrzymi problem. Pliczek, ów ma olbrzymi rozmiar bo aż 120mg. Są tam zrzuty z 5-6 tabel. Plik wygląda ładnie, problem jest taki, że klient na swoim serwerze nie może zmienić czasu wykonywania skryptu php. Problem jest takowy, że trza przynajmniej raz dziennie wczytać ten plik, sprawdzić które wpisy są i brakujące dodać. Nie mam pomysłu jak to zooptymalizować, bo jest masakra 60 sekund nie starcza nawet na samo sprawdzenie. Plik z serwera się ściąga szybko bo spakowany ma zaledwie 20mg. Obecnie wczytuje go linia po linii, żeby nie zawalac pamięci. Na moim serwerze czas tej operacji wynosi około 10 minut, tyle że ja moge manipulować czasem wykonania skryptu. Myślałem nad tym aby podzielić go na jakieś części, ale nie powiem facetowi, żeby klikał co pół minuty, tymbardziej, że wykonywane jest jako zadanie crona(więc opcja odpada). Jest to zwykły hosting, więc pisanie programu odpada, a byłoby najlepszym rozwiązaniem. Myślałem też nad innym dzieleniem pliku. Podzielić go i powidzmy przez te 10-15 min odpalać crona co minutę.

0

A gdyby robić to porcjami ? Wywoływać skrypt z dwoma parametrami przekazanymi poprzez GET. Pierwszy określałby od którego wpisu zacząć, a drugi na którym skończyć. Po skończeniu parsowania pewnej partii materiału, automatycznie wywoływał by kolejny (poprzez chociażby header(location)) z innymi parametrami (zwiększonymi np. o 100).

To powinno "oszukac" czas wykonywania pojedynczego skryptu (chociaż w trochę mało elegancki sposób :P )

Pozdrawiam Rezz.

0

Rozwiązanie ciekawe, aczkolwiek sporo porametrów musiałbym przekazać. Ciekawe ile redirectów wget wytrzyma, bo porzez niego wywołuje skrypt w cronie. Walcze dalej :/

0

A nie możesz normalnie z konsoli skryptu uruchomić? Wtedy limit czasowy nie ma znaczenia :-) No i wget się nie będzie męczyć redirectami.

0

Tyle to ja wiem i właśnie nie bardzo mogę, bo kłopotu by nie było. Obecnie rozważam możliwość aby klient mi dopłacił(sam to zasugerował) a mój serwer by to obrabiał i podawał tylko nowości. I chyba tak zrobie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1