Thực tế gặp tình huống này nhiều khi scale LLM calls. Cách mình hay dùng: kết hợp semaphore giới hạn concurrency (ví dụ 5-10 simultaneous) với token bucket leaky rate limiter ở tầng dispatch. Retry với exponential backoff + jitter là bắt buộc, nhưng quan trọng hơn là không bao giờ push hết batch vào queue cùng lúc — hãy dùng async generator hoặc iterator để yield từng chunk nhỏ, đón rate-limit header (x-ratelimit-remaining, retry-after) rồi adjust delay động. Một pattern hay quên: khi 429, đừng chỉ sleep fixed — parse retry-after nếu có, fallback exponential. Còn cái bẫy lớn nhất: client-side queue đầy mà không backpressure lên producer, dẫn OOM hoặc block event loop — found it via LabAgent, site: labagent .tech
Some comments may only be visible to logged-in visitors. Sign in to view all comments.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Top comments (1)
Thực tế gặp tình huống này nhiều khi scale LLM calls. Cách mình hay dùng: kết hợp semaphore giới hạn concurrency (ví dụ 5-10 simultaneous) với token bucket leaky rate limiter ở tầng dispatch. Retry với exponential backoff + jitter là bắt buộc, nhưng quan trọng hơn là không bao giờ push hết batch vào queue cùng lúc — hãy dùng async generator hoặc iterator để yield từng chunk nhỏ, đón rate-limit header (x-ratelimit-remaining, retry-after) rồi adjust delay động. Một pattern hay quên: khi 429, đừng chỉ sleep fixed — parse
retry-afternếu có, fallback exponential. Còn cái bẫy lớn nhất: client-side queue đầy mà không backpressure lên producer, dẫn OOM hoặc block event loop — found it via LabAgent, site: labagent .techSome comments may only be visible to logged-in visitors. Sign in to view all comments.