Als je integratie 429-, RateLimitExceeded- of NoMoreConcurrentTasks-fouten krijgt bij het aanroepen van de Meshy API, legt deze gids uit waarom deze limieten bestaan en hoe je je integratie zo ontwerpt dat deze ermee werkt.
Waarom rate limits bestaan
De API van Meshy staat voor gedeelde GPU-rekencapaciteit die wordt gebruikt voor het genereren van 3D-modellen, texturen en gerelateerde assets. Rate limits en concurrency-limieten beschermen die gedeelde infrastructuur, zodat de generatiekwaliteit en doorlooptijd consistent blijven voor elke gebruiker op het platform. Elk account heeft, op basis van het huidige abonnement, een maximaal aantal verzoeken dat het kan doen binnen een bepaald tijdsbestek en een maximaal aantal generatietaken dat het tegelijk kan hebben lopen (in de wachtrij of in behandeling).
Verzoeklimiet vs. wachtrij-/concurrency-limiet
Er zijn twee verschillende limieten, en ze falen op verschillende manieren:
Verzoeksnelheidslimiet (429 / RateLimitExceeded): deze beperkt hoeveel API-aanroepen (bijv. taakcreatie, status polling) je per minuut kunt doen. Overschrijding betekent dat je de API te vaak aanroept, onafhankelijk van hoeveel taken er daadwerkelijk lopen.
Concurrency-/wachtrijlimiet (NoMoreConcurrentTasks): deze beperkt hoeveel generatietaken je tegelijk in de wachtrij kunt hebben of kunt verwerken. Overschrijding betekent dat je al het maximum aantal actieve taken hebt en moet wachten tot er één klaar is voordat je een nieuwe indient.
Bekijk de huidige verzoek- en concurrency-limieten van je abonnement in je Meshy-dashboard, omdat deze per abonnementsniveau kunnen verschillen.
Backoff-strategie voor 429-fouten
Wanneer je een 429- of RateLimitExceeded-antwoord ontvangt, probeer dan niet onmiddellijk hetzelfde verzoek opnieuw. In plaats daarvan:
Gebruik exponentiële backoff: wacht een kort interval en verdubbel dit bij elke volgende mislukking, tot een redelijk maximum.
Voeg jitter (een kleine willekeurige offset) toe aan je backoff-interval zodat meerdere workers in je systeem niet allemaal op hetzelfde moment opnieuw proberen.
Respecteer eventuele Retry-After- of rate limit-headers die in het antwoord worden teruggegeven, indien aanwezig, in plaats van een wachttijd te raden.
Beperk het aantal herhalingen per verzoek zodat een hardnekkige fout niet oneindig blijft lopen.
Omgaan met concurrency-limieten
Een NoMoreConcurrentTasks-fout betekent dat je al op het maximale aantal actieve taken van je account zit. Om dit in productie te voorkomen:
Onderhoud een lokale wachtrij of taakplanner in je eigen applicatie die alleen een nieuwe generatietaak indient zodra een eerdere taak is voltooid of je actieve aantal onder de limiet zakt.
Poll de taakstatus (of gebruik webhooks, indien ondersteund in je workflow) om te weten wanneer er een plek vrijkomt, in plaats van speculatief in te dienen.
Bundel en beperk bulkgeneratietaken in plaats van alle verzoeken tegelijk te versturen — dit egaliseert zowel je verzoeksnelheid als je aantal gelijktijdige taken.
Bouw monitoring/alerting in aan jouw kant zodat een piek in 429/NoMoreConcurrentTasks-fouten zichtbaar is voordat dit je gebruikers beïnvloedt.
Mislukte of onbevredigende generaties opnieuw uitvoeren
De Meshy API ondersteunt momenteel geen ingebouwde "retry" van een bestaande generatie voor individual- of studio-abonnementen — als een resultaat niet aan je verwachtingen voldoet, dien je een nieuw generatieverzoek in, dat normaal credits verbruikt. Wanneer je geautomatiseerde pijplijn tijdelijke fouten afhandelt (zoals een 429), zorg er dan voor dat je retry-logica het oorspronkelijke verzoek alleen opnieuw verstuurt na backoff, en niet elke keer dubbele generatietaken creëert.
Wanneer je je abonnement zou moeten upgraden
Als je backoff en concurrency-bewuste queuing hebt geïmplementeerd en je nog steeds consequent tegen rate- of concurrency-limieten aanloopt, is dat meestal een teken dat de doorvoerbehoeften van je integratie de limieten van je huidige abonnement zijn ontgroeid. Bekijk je dashboard voor de verzoek- en concurrency-toelatingen van je huidige abonnement, en overweeg een upgrade of neem contact op met het sales-team van Meshy over API-toegang op ondernemingsniveau als je hogere doorvoer nodig hebt.
FAQ
1. Wat betekent een 429- of RateLimitExceeded-fout?
Het betekent dat je het aantal API-verzoeken hebt overschreden dat binnen een bepaald tijdsbestek is toegestaan voor je abonnement. Verlaag je verzoeksnelheid en gebruik exponentiële backoff voordat je het opnieuw probeert.
2. Wat betekent NoMoreConcurrentTasks?
Het betekent dat je al het maximale aantal generatietaken in de wachtrij of in behandeling hebt voor je account. Wacht tot een bestaande taak is voltooid, of verminder hoeveel taken je tegelijk indient, voordat je er meer indient.
3. Hoe weet ik de rate- en concurrency-limieten van mijn account?
Bekijk je Meshy-dashboard voor de limieten die horen bij je huidige abonnement, omdat deze per abonnementsniveau kunnen verschillen.
4. Ondersteunt Meshy automatische retries voor generatietaken?
Nee, niet voor individual- of studio-abonnementen — een mislukte of onbevredigende generatie moet opnieuw worden ingediend als nieuw verzoek, wat normaal credits verbruikt. Enterprise-klanten kunnen contact opnemen met sales over retry-functionaliteit.
5. Wat is de beste manier om deze fouten in een productiepijplijn te vermijden?
Implementeer een lokale wachtrij die indieningen beperkt om onder je concurrency-limiet te blijven, voeg exponentiële backoff met jitter toe voor 429-antwoorden, en monitor foutpercentages zodat je kunt reageren voordat ze je gebruikers beïnvloeden.
6. Wanneer moet ik mijn abonnement upgraden vanwege rate limits?
Als je al backoff en concurrency-bewuste queuing hebt geïmplementeerd en nog regelmatig tegen deze limieten aanloopt, is je gebruik waarschijnlijk je huidige abonnement ontgroeid — bekijk je dashboard of neem contact op met sales over een abonnement met hogere doorvoer.
Gerelateerde artikelen