Preskoči na glavno vsebino

REST API vracia timeout, proces na pozadí stále beží alebo je potrebné požiadavku opakovať?

REST API vracia 504 - preruší sa predchádzajúci (stále bežiaci) proces v ABRA Flexi? Nedôjde k súbehu transakcií?

Avtor: Petr Pech

Dlho bežiaci požiadavok môže skončiť odpoveďou 504 — proxy pred ABRA Flexi prestala čakať. Spracovanie na pozadí sa tým však nepreruší a dobehne do konca.


Čo robiť

  • Počkajte, kým proces dobehne, a až potom overte výsledok dotazom na dáta.

  • Neposielajte požiadavok hneď znova. Opakované volanie sa zastaví na zámkoch, ktoré drží stále bežiace prvé spracovanie — namiesto urýchlenia sa obe volania navzájom zablokujú.

  • Overte si výsledok podľa dát, nie podľa návratového kódu. Pri importe sa hodí vlastný identifikátor, vďaka ktorému spoznáte, či záznam vznikol.

⚠️ Odpoveď 504 nehovorí, že sa operácia nepodarila — len že trvala dlhšie, než koľko proxy čaká. To je zásadný rozdiel oproti 503, kde sa požiadavok k jadru vôbec nedostal; to popisuje článok Chyba 503 Service Unavailable.


Ako sa vyhnúť timeoutu

  • Rozdeľte dávku na menšie časti. Import po stovkách záznamov prebehne spoľahlivejšie ako jeden požiadavok s desaťtisícami.

  • Obmedzte rozsah čítaniadetail=custom namiesto detail=full a filter namiesto sťahovania celej evidencie.

  • Vyhnite sa súbehu — dve dávky nad rovnakými dokladmi sa navzájom blokujú.

💡 Ak sa timeout opakuje aj pri malých požiadavkoch, ide skôr o výkonnostný problém inštancie — obráťte sa na podporu, ktorá preverí beh servera.


Súvisiace

Ste s tem dobili odgovor na svoje vprašanje?