Oferta Realizacje Stała opieka CRM i AI Blog O mnie Kontakt
Zadzwoń: 501 178 850 Napisz wiadomość

Jak radzić sobie z limitami API w BaseLinkerze i hurtowniach

Każde poważne API ma limity zapytań. BaseLinker pozwala na 100 zapytań na minutę. Przy tysiącach produktów i setkach zamówień prosty skrypt, który wysyła wszystko naraz, szybko dostanie błąd 429 Too Many Requests i stanie. Tak buduję integracje, które się nie wykładają.

1. Kolejka zamiast wszystkiego naraz

Najczęstszy błąd to wołanie zewnętrznego API w trakcie wizyty klienta na stronie albo w jednej długiej pętli. Przy kilkuset produktach skrypt przekroczy czas wykonania albo limit pamięci.

Lepiej wrzucić zadania do kolejki: aktualizacje dzielę na małe paczki (np. po 50 produktów) i przetwarzam w tle, przez proces działający cały czas albo cron co kilka minut.

2. Szanuj limity i odczekaj

Gdy serwer odpowiada 429 Too Many Requests, konektor czyta nagłówek Retry-After, czeka tyle, ile trzeba, i próbuje ponownie, za każdym razem z dłuższą przerwą (exponential backoff). Nie dobija przeciążonego serwera hurtowni i nie ryzykuje blokady adresu IP.

3. Wysyłaj tylko to, co się zmieniło

Po co pytać BaseLinkera o produkt, którego cena i stan nie zmieniły się od wczoraj? Przed wysłaniem liczę hash (MD5 albo SHA-256) z najważniejszych pól i aktualizuję tylko te produkty, w których coś się zmieniło. Przy dużym katalogu to zwykle niewielki ułamek wszystkich pozycji, więc limit przestaje być problemem.

4. Nie pobieraj tokena przy każdym zapytaniu

BaseLinker używa stałego tokena, ale wiele API, z którymi go łączę (np. Allegro), działa na OAuth2. Tam widuję skrypty, które pobierają nowy token przed każdym zapytaniem. Token trzeba przechowywać bezpiecznie (np. w Redis albo w tabeli w bazie) i odświeżać w tle dopiero wtedy, gdy zbliża się koniec jego ważności.

Chcesz, żebym się tym zajął?

Jeśli wolisz nie grzebać w tym samodzielnie, chętnie pomogę. Robię to od 14 lat.

Zobacz, jak mogę pomóc →
Zadzwoń Napisz Awaria / WP