Błąd 429 w integracji: jak zmniejszyć ruch i sprawdzić zaległości
Co sprawdzić po przekroczeniu limitu połączeń: wspólne konto, Retry-After, tempo nadrabiania i rzeczywisty wynik wymiany danych.
Zamówienia jeszcze się pobierają, ale aktualizacja stanów coraz częściej kończy się komunikatem „429”. Uruchomienie drugiej kopii integracji nie jest dobrym pierwszym krokiem. Najpierw ustal, kto korzysta z tego samego limitu, i ogranicz zbędne ponowienia. Potem sprawdź, czy zaległość rzeczywiście maleje. Sam znikający komunikat nie potwierdza nadrobienia pracy.
Co właściwie mówi numer 429?
RFC 6585, sekcja 4, definiuje ten kod jako przekroczenie liczby żądań w określonym czasie. Żądanie to pojedyncza prośba programu do usługi, na przykład o pobranie zamówień. Standard dopuszcza dodatkową informację Retry-After, czyli wskazanie oczekiwania przed kolejną próbą. Nie nakazuje jednak jej dołączania.
Ten sam dokument nie ustala, czy limit liczy się dla konta, wybranej operacji czy całej usługi. Dlatego z komunikatu nie wyczytasz samodzielnie liczby dozwolonych połączeń. Sprawdź aktualną dokumentację używanej platformy oraz pełną treść odpowiedzi. Nie wpisuj do ustawień limitu znalezionego dla innego programu.
Policz programy, które proszą o te same dane
Zrób krótką listę: integrator, drugi komputer, eksport do arkusza, narzędzie raportowe i ręczne odświeżanie w używanym panelu. Przy każdym zapisz, z jakiego konta korzysta oraz co pobiera. Obecność programu na liście nie dowodzi jeszcze, że współdzieli limit. To pytanie do sprawdzenia w zasadach konkretnej usługi.
Jeśli dokumentacja potwierdza wspólny limit, ustal jedną kolejność prac. Na czas nadrabiania zaległości możesz odłożyć własny, niepilny eksport, o ile nie zatrzyma to innego potrzebnego procesu. Nie wyłączaj po omacku wszystkich połączeń. Zapisz, co wstrzymano, kto to zrobił i kiedy należy przywrócić zwykły harmonogram.
Oczekiwanie i tempo pracy to dwie osobne decyzje
RFC 9110, sekcja 10.2.3, wyjaśnia, że Retry-After może zawierać datę albo liczbę sekund. Wartość 120 oznacza dwie minuty. Jeśli program pokazuje tę informację, uwzględnij ją przy wznowieniu. Nie tłumacz liczby jako minut ani nie zastępuj jej codziennie tym samym czasem oczekiwania.
Po przerwie nadal trzeba dostosować częstotliwość do zasad platformy. Gdy po każdym wznowieniu od razu wraca 429, sprawdź odstępy odpytywania i współbieżne zadania, czyli te wykonywane jednocześnie. Nie ma jednego uniwersalnego ustawienia dla wszystkich integracji. Zmieniaj jeden uzgodniony parametr i obserwuj wynik w tych samych godzinach pracy.
Przykład: czy kolejka ma szansę się opróżnić?
Załóżmy w prostym, hipotetycznym przykładzie, że w kolejce czeka 60 spraw. Co minutę dochodzą cztery nowe, a program skutecznie kończy sześć. Przy niezmiennym tempie zaległość maleje o dwie sprawy na minutę i potrzebuje 30 minut na opróżnienie. Jeśli kończy tylko trzy, kolejka rośnie mimo poprawnych pojedynczych odpowiedzi.
To rachunek na umownych sprawach, a nie przeliczenie zamówień na żądania API. Jedno zamówienie może wymagać kilku działań. Do własnej obserwacji zanotuj liczbę oczekujących spraw na początku i końcu okresu, nowe wpływy oraz skuteczne zakończenia. Błędy policz oddzielnie od prób, które zakończyły pracę.
Zakończ kontrolę na wyniku biznesowym
Sprawdź wybrane zamówienie i aktualność stanu produktu po zwykłym cyklu wymiany. Następnie wróć do licznika zaległości. W odbiorze integracji po tygodniu warto uwzględnić także godzinę większego ruchu. Uzgodnione tempo i sposób wznowienia zachowaj razem z ustaleniami po wdrożeniu. Kolejna zmiana powinna zaczynać od sprawdzonej reguły, zamiast ponownie zgadywać.