• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP - Zapisywanie dużych ilości danych pobieranych przez API

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
+1 głos
624 wizyt
pytanie zadane 16 listopada 2021 w PHP przez Kaerv Użytkownik (500 p.)

Cześć, 

mam do napisania skrypt, który będzie pobierał wszystkie produkty przez API i zapisywał je do pliku JSON (link do dokumentacji: https://b2b-wsparcie.coffeedesk.pl/).

Podczas jednego zapytania mogę pobrać tylko 50 produktów, a wszystkich jest ponad 4000 (Łącznie jakieś 11MB danych).

Problem polega na tym, że podczas pobierania wszystkiego w pętli i zapisywania do tablicy w pewnym momencie dostaję error 500 prawdopodobnie spowodowany przekroczeniem maksymalnego rozmiaru zmiennej. Jeżeli od razu zapiszę do dane do pliku to i tak w podobnym momencie dostaję ten error.

Chciałem sprawdzić jaki jest dokładny komunikat błędu przy pomocy kodu 

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

ale nic to nie daje.

Wiem, że mógłbym użyć ajaxa,ale skrypt ma być w późniejszym czasie wywoływany CRONem, więc ta opcja raczej odpada.

Jest jakieś rozwiązanie przeznaczone do pobierania dużych ilości danych przez API żeby uchronić się przed zbyt dużym rozmiarem zmiennej, zbyt długim czasem wykonywania skryptu lub zbyt dużą ilością przekierowań?

Będę wdzięczny za każdą wskazówkę :)

1
komentarz 16 listopada 2021 przez Michał Kazula Pasjonat (19,540 p.)
Hmm 50 produktów powoduje błąd pamięci. Coś dziwnego.

A czemu nie nadpisujesz pliku JSON za każdym razem obrotu pętli?

Wtedy nie trzymasz 4000 danych w zmiennej.
komentarz 16 listopada 2021 przez Kaerv Użytkownik (500 p.)
Sprawdziłem logi i okazało się, że błąd to: mod_fcgid: read timeout from pipe

Błąd ten był tylko na xamppie, jak wrzuciłem skrypt na hosting to wszystko działa :)

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 219 wizyt
pytanie zadane 25 sierpnia 2018 w JavaScript przez mi-20 Stary wyjadacz (13,250 p.)
0 głosów
0 odpowiedzi 187 wizyt
+1 głos
2 odpowiedzi 731 wizyt

93,439 zapytań

142,431 odpowiedzi

322,674 komentarzy

62,802 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...