• 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

Object Storage Arubacloud
+1 głos
333 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ź 174 wizyt
pytanie zadane 25 sierpnia 2018 w JavaScript przez mi-20 Stary wyjadacz (13,190 p.)
0 głosów
0 odpowiedzi 163 wizyt
+1 głos
2 odpowiedzi 601 wizyt

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...