![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 6.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich (IMG:style_emoticons/default/smile.gif)
Mam nadzieje że jest ktoś w stanie mi pomóc rozwiązać problem ze skryptem do aktualizacji stanów magazynowych. Otóż sklep stoi na home.pl i tutaj jest problem... (od administatorów jedyne czego się dowiedziałem to żeby przenieść na inny pakiet hostingowy (IMG:style_emoticons/default/tongue.gif) ot tak pomocni są)... a mianowicie mają ustawione limity CPU (ok rozumie) ale także max_execution_time na ok 5min którego zmienić nie można :/ ale do sedna... Moje wypociny ponizej i jako że jestem laikiem w programowaniu to nie bardzo wiem jak go zoptymalizować lub podzielić na części aby wykonywały się jedna po drugiej (np podzielic plik xml i jeden po drugim parsowac, plik zawiera około 10 000 produktów ~10mb).
Fragment XML:
pokrótce: skrypt pobiera xml przy pomocy simpleXML oraz laczy sie z baza danych gdzie wcześniej zostały zaimportowane produkty z numerem ID wpisanym do tabelki `reference` i jeśli produkt istnieje zarówno w DB jak i XML jego stan magazynowy zostaje uzupelniony odpowiednią liczbą, natomiast jeśli produkt znajduje się w bazie danych ale nie w XMLu to jego stan określa się jako 0. całość opiera się na metodzie array_search() czyli przeszukuje określonego wyrażenia w całej tablicy trzymającej numery ID produktów z XML'a. I pewnie dlatego nieraz otrzymuje komunikat CPU LIMIT jednak nie wymyśliłem jakiegoś innego sposobu aby to sprawdzać. Za każdą sugestie podpowiedź, przykład, rzut okiem na kod będę bardzo wdzięczny (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
nie pchaj całej bazy do zmiennych
wrzuć sobie wszystko w tą pętle z linii 27 czyli w w uproszczeniu
pisane z palca i nie analizowałem dokładnie twojego kodu więc mogą być błędy ---- edit: co to za potworek if(isset($reference) == $productid2) isset daje w wyniku boolean, a $productid2 zawiera int więc takie porównanie większego sensu niema Ten post edytował sazian 6.05.2014, 19:32:23 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 16:17 |