Jeśli Twoja integracja napotyka błędy 429, RateLimitExceeded lub NoMoreConcurrentTasks podczas wywoływania Meshy API, ten przewodnik wyjaśnia, dlaczego te limity istnieją i jak zaprojektować integrację tak, aby działała w ich granicach.
Dlaczego istnieją limity zapytań
API Meshy znajduje się przed współdzieloną mocą obliczeniową GPU służącą do generowania modeli 3D, tekstur i powiązanych zasobów. Limity zapytań i ograniczenia współbieżności chronią tę współdzieloną infrastrukturę, dzięki czemu jakość generowania i czas realizacji pozostają spójne dla każdego użytkownika platformy. Każde konto, w zależności od aktualnego planu, ma maksymalną liczbę żądań, które może wykonać w danym oknie czasowym, oraz maksymalną liczbę zadań generowania, które może mieć jednocześnie uruchomione (w kolejce lub w trakcie).
Limit zapytań a limit kolejki/współbieżności
Istnieją dwa odrębne limity i działają inaczej:
Limit częstotliwości zapytań (429 / RateLimitExceeded): ogranicza liczbę wywołań API (np. tworzenie zadań, odpytywanie o status), które możesz wykonać na minutę. Jego przekroczenie oznacza, że wywołujesz API zbyt często, niezależnie od liczby faktycznie uruchomionych zadań.
Limit współbieżności / kolejki (NoMoreConcurrentTasks): ogranicza liczbę zadań generowania, które możesz mieć jednocześnie w kolejce lub w trakcie przetwarzania. Jego przekroczenie oznacza, że masz już maksymalną liczbę aktywnych zadań i musisz poczekać na zakończenie jednego z nich przed przesłaniem kolejnego.
Sprawdź aktualne limity zapytań i współbieżności dla swojego planu w panelu Meshy, ponieważ mogą się one różnić w zależności od poziomu planu.
Strategia wycofywania (backoff) dla błędów 429
Gdy otrzymasz odpowiedź 429 lub RateLimitExceeded, nie ponawiaj tego samego żądania natychmiast. Zamiast tego:
Stosuj wykładnicze wycofywanie (exponential backoff): odczekaj krótki interwał, a następnie podwajaj go przy każdym kolejnym niepowodzeniu, do rozsądnego maksimum.
Dodaj jitter (niewielki losowy odstęp) do interwału wycofywania, aby wielu pracowników w Twoim systemie nie ponawiało prób w tym samym momencie.
Respektuj nagłówki Retry-After lub nagłówki limitu zapytań zwrócone w odpowiedzi, jeśli są obecne, zamiast zgadywać czas oczekiwania.
Ogranicz liczbę ponowień na żądanie, aby uporczywe niepowodzenie nie zapętlało się w nieskończoność.
Planowanie z uwzględnieniem limitów współbieżności
Błąd NoMoreConcurrentTasks oznacza, że osiągnąłeś już limit aktywnych zadań na swoim koncie. Aby uniknąć jego osiągnięcia w środowisku produkcyjnym:
Prowadź lokalną kolejkę lub harmonogram zadań we własnej aplikacji, który przesyła nowe zadanie generowania dopiero po zakończeniu poprzedniego lub gdy liczba aktywnych zadań spadnie poniżej limitu.
Odpytuj o status zadań (lub korzystaj z webhooków, jeśli są obsługiwane w Twoim przepływie pracy), aby wiedzieć, kiedy zwolni się miejsce, zamiast przesyłać żądania spekulacyjnie.
Grupuj i ograniczaj zadania masowego generowania zamiast wysyłać wszystkie żądania naraz — to wygładza zarówno częstotliwość zapytań, jak i liczbę współbieżnych zadań.
Wdróż po swojej stronie monitorowanie/alarmowanie, aby skok błędów 429/NoMoreConcurrentTasks był widoczny, zanim wpłynie na Twoich użytkowników.
Ponawianie nieudanych lub niezadowalających generowań
Meshy API nie obsługuje obecnie wbudowanej funkcji "ponawiania" istniejącego generowania dla planów indywidualnych ani studio — jeśli wynik nie spełnia Twoich oczekiwań, przesyłasz nowe żądanie generowania, które zużywa kredyty w normalny sposób. Gdy Twój zautomatyzowany pipeline obsługuje błędy przejściowe (np. 429), upewnij się, że logika ponawiania jedynie ponownie wysyła oryginalne żądanie po wycofaniu, a nie tworzy za każdym razem duplikaty zadań generowania.
Kiedy rozważyć upgrade planu
Jeśli wdrożyłeś wycofywanie i kolejkowanie uwzględniające współbieżność, a mimo to konsekwentnie osiągasz limity zapytań lub współbieżności, zazwyczaj oznacza to, że zapotrzebowanie Twojej integracji na przepustowość przekroczyło limity obecnego planu. Sprawdź w panelu limity zapytań i współbieżności swojego obecnego planu oraz rozważ upgrade lub skontaktuj się z zespołem sprzedaży Meshy w sprawie dostępu do API na poziomie enterprise, jeśli potrzebujesz utrzymywanego wyższego przepustowości.
FAQ
1. Co oznacza błąd 429 lub RateLimitExceeded?
Oznacza, że przekroczyłeś liczbę żądań API dozwolonych w danym oknie czasowym dla swojego planu. Zwolnij częstotliwość zapytań i zastosuj wykładnicze wycofywanie przed ponowieniem.
2. Co oznacza NoMoreConcurrentTasks?
Oznacza, że masz już maksymalną liczbę zadań generowania w kolejce lub w toku dla swojego konta. Poczekaj na zakończenie istniejącego zadania lub zmniejsz liczbę zadań przesyłanych jednocześnie, zanim prześlesz kolejne.
3. Jak sprawdzić limity zapytań i współbieżności mojego konta?
Sprawdź limity związane z obecnym planem w panelu Meshy, ponieważ mogą się one różnić w zależności od poziomu planu.
4. Czy Meshy obsługuje automatyczne ponawianie zadań generowania?
Nie, nie dla planów indywidualnych ani studio — nieudane lub niezadowalające generowanie musi zostać przesłane ponownie jako nowe żądanie, które zużywa kredyty w normalny sposób. Klienci enterprise powinni skontaktować się z działem sprzedaży w sprawie funkcji ponawiania.
5. Jaki jest najlepszy sposób uniknięcia tych błędów w pipeline produkcyjnym?
Wdróż lokalną kolejkę, która ogranicza liczbę przesyłanych żądań, aby pozostać poniżej limitu współbieżności, dodaj wykładnicze wycofywanie z jitter dla odpowiedzi 429 oraz monitoruj częstość błędów, aby móc zareagować, zanim wpłyną na Twoich użytkowników.
6. Kiedy powinienem zupgrade'ować plan ze względu na limity zapytań?
Jeśli już wdrożyłeś wycofywanie i kolejkowanie uwzględniające współbieżność, a mimo to regularnie osiągasz te limity, Twoje użycie prawdopodobnie przekroczyło możliwości obecnego planu — sprawdź swój panel lub skontaktuj się z działem sprzedaży w sprawie planu o wyższej przepustowości.
Powiązane artykuły