Pokud vaše integrace naráží na chyby 429, RateLimitExceeded nebo NoMoreConcurrentTasks při volání Meshy API, tato příručka vysvětluje, proč tyto limity existují a jak navrhnout vaši integraci tak, aby s nimi fungovala.
Proč existují limity požadavků
API služby Meshy se nachází před sdílenými GPU výpočetními kapacitami, které se používají ke generování 3D modelů, textur a souvisejících assetů. Limity požadavků a limity souběžnosti chrání tuto sdílenou infrastrukturu, takže kvalita generování a doba zpracování zůstávají konzistentní pro každého uživatele platformy. Každý účet má na základě svého aktuálního plánu maximální počet požadavků, které může provést v daném časovém okně, a maximální počet generovaných úloh, které mohou být současně spuštěny (ve frontě nebo v průběhu).
Limit požadavků vs. limit fronty/souběžnosti
Existují dva odlišné limity a selhávají jinak:
Limit rychlosti požadavků (429 / RateLimitExceeded): tento limit omezuje, kolik volání API (např. vytvoření úlohy, dotazování stavu) můžete provést za minutu. Jeho překročení znamená, že voláte API příliš často, nezávisle na tom, kolik úloh skutečně běží.
Limit souběžnosti / fronty (NoMoreConcurrentTasks): tento limit omezuje, kolik generovaných úloh můžete mít současně ve frontě nebo ve zpracování. Jeho překročení znamená, že již máte maximální počet aktivních úloh a musíte počkat, až jedna dokončí, než odešlete další.
Aktuální limity požadavků a souběžnosti vašeho plánu zkontrolujte v dashboardu Meshy, protože se mohou lišit podle úrovně plánu.
Strategie backoff pro chyby 429
Když obdržíte odpověď 429 nebo RateLimitExceeded, neopakujte stejný požadavek okamžitě. Místo toho:
Použijte exponenciální backoff: počkejte krátkou dobu a při každém dalším selhání interval zdvojnásobte, až do rozumného maxima.
Přidejte do intervalu backoff jitter (malý náhodný posun), aby všichni pracovníci ve vašem systému neopakovali požadavek ve stejný okamžik.
Respektujte záhlaví Retry-After nebo záhlaví limitů požadavků vrácená v odpovědi, pokud jsou přítomna, místo odhadování doby čekání.
Omezte počet opakování na požadavek, aby trvalé selhání nevytvářelo nekonečnou smyčku.
Plánování s ohledem na limity souběžnosti
Chyba NoMoreConcurrentTasks znamená, že již dosahujte stropu aktivních úloh vašeho účtu. Chcete-li se v produkčním prostředí tomuto limitu vyhnout:
Udržujte lokální frontu nebo plánovač úloh ve své vlastní aplikaci, která odešle novou generovanou úlohu pouze tehdy, když se předchozí dokončí nebo když počet aktivních úloh klesne pod limit.
Dotazujte stav úloh (nebo použijte webhooky, pokud jsou ve vašem pracovním postupu podporovány), abyste věděli, kdy se uvolní místo, místo spekulativního odesílání.
Dávkujte a omezujte hromadné generování úloh namísto odesílání všech požadavků najednou — tím se vyhladí jak vaše rychlost požadavků, tak počet souběžných úloh.
Zaveďte na své straně monitorování/upozornění, aby nárůst chyb 429/NoMoreConcurrentTasks byl viditelný dříve, než ovlivní vaše uživatele.
Opakování neúspěšných nebo nevyhovujících generování
Meshy API v současné době nepodporuje vestavěné „opakování" existujícího generování pro plány individual nebo studio — pokud výsledek nesplňuje vaše očekávání, odešlete nový požadavek na generování, který spotřebuje kredity jako obvykle. Když vaše automatizovaný pipeline zpracovává přechodné chyby (jako je 429), ujistěte se, že vaše logika opakování znovu odesílá pouze původní požadavek po uplynutí backoff intervalu, a nevytváří pokaždé duplicitní generované úlohy.
Kdy zvážit upgrade plánu
Pokud jste implementovali backoff a frontu s ohledem na souběžnost a stále konzistentně narážíte na limity požadavků nebo souběžnosti, je to obvykle známka toho, že potřeby propustnosti vaší integrace přerostly limity vašeho aktuálního plánu. Zkontrolujte ve svém dashboardu povolené limity požadavků a souběžnosti vašeho aktuálního plánu a zvažte upgrade nebo kontaktujte prodejní tým Meshy ohledně API přístupu na podnikové úrovni, pokud potřebujete trvale vyšší propustnost.
FAQ
1. Co znamená chyba 429 nebo RateLimitExceeded?
Znamená to, že jste překročili počet požadavků API povolených v daném časovém okně pro váš plán. Zpomalte rychlost požadavků a před opakováním použijte exponenciální backoff.
2. Co znamená NoMoreConcurrentTasks?
Znamená to, že již máte maximální počet generovaných úloh ve frontě nebo v průběhu pro svůj účet. Počkejte, až se existující úloha dokončí, nebo snižte počet úloh odesílaných najednou, než odešlete další.
3. Jak zjistím limity požadavků a souběžnosti mého účtu?
Zkontrolujte ve svém dashboardu Meshy limity spojené s vaším aktuálním plánem, protože se mohou lišit podle úrovně plánu.
4. Podporuje Meshy automatické opakování generovaných úloh?
Ne, ne pro plány individual nebo studio — neúspěšné nebo nevyhovující generování je nutné znovu odeslat jako nový požadavek, který běžně spotřebuje kredity. Zákazníci na podnikové úrovni by měli kontaktovat obchodní oddělení ohledně funkce opakování.
5. Jaký je nejlepší způsob, jak se těmto chybám vyhnout v produkčním pipeline?
Implementujte lokální frontu, která omezuje odesílání, abyste zůstali pod limitem souběžnosti, přidejte exponenciální backoff s jitterem pro všechny odpovědi 429 a monitorujte míru chyb, abyste mohli reagovat dříve, než ovlivní vaše uživatele.
6. Kdy bych měl kvůli limitům požadavků upgradovat svůj plán?
Pokud jste již implementovali backoff a frontu s ohledem na souběžnost a stále pravidelně narážíte na tyto limity, vaše využití pravděpodobně přerostlo váš aktuální plán — zkontrolujte svůj dashboard nebo kontaktujte obchodní oddělení ohledně plánu s vyšší propustností.
Související články