Přeskočit na hlavní obsah

REST API vrací timeout, proces na pozadí stále běží nebo je nutné požadavek opakovat?

REST API vrací 504 - přeruší se předchozí (stále běžící) proces ve ABRA Flexi? Nedojde k souběhu transakcí?

Autor: Petr Pech

Dlouho běžící požadavek může skončit odpovědí 504 — proxy před ABRA Flexi přestala čekat. Zpracování na pozadí se tím ale nepřeruší a doběhne do konce.


Co dělat

  • Počkejte, než proces doběhne, a teprve pak ověřte výsledek dotazem na data.

  • Neposílejte požadavek hned znovu. Opakované volání se zastaví na zámcích, které drží stále běžící první zpracování — místo urychlení se obě volání navzájem zablokují.

  • Ověřte si výsledek podle dat, ne podle návratového kódu. U importu se hodí vlastní identifikátor, díky kterému poznáte, jestli záznam vznikl.

⚠️ Odpověď 504 neříká, že se operace nepovedla — jen že trvala déle, než kolik proxy čeká. To je zásadní rozdíl proti 503, kde se požadavek k jádru vůbec nedostal; tu popisuje článek Chyba 503 Service Unavailable.


Jak se timeoutu vyhnout

  • Rozdělte dávku na menší části. Import po stovkách záznamů proběhne spolehlivěji než jeden požadavek s desetitisíci.

  • Omezte rozsah čtenídetail=custom místo detail=full a filtr místo stahování celé evidence.

  • Vyhněte se souběhu — dvě dávky nad stejnými doklady se navzájem blokují.

💡 Opakuje-li se timeout i u malých požadavků, jde spíš o výkonnostní problém instance — obraťte se na podporu, která prověří běh serveru.


Související

Dostali jste odpověď na svou otázku?