Pull to refresh

Comments 3

А на кой хер вам асинхронность с семафором на 1?

Семафор(1) - это временный костыль, не архитектурное решение.

Задача была: перестать долбить Groq 3 параллельными запросами и вылетать на платный DeepSeek. Semaphore(1) решил это за одну строку кода.

Да, при semaphore(1) asyncio теряет смысл внутри одного дайджеста - запросы идут последовательно, как в синхронном коде. Технически правильное решение - адаптивный rate limiter: считать токены в скользящем окне 60 секунд и притормаживать только когда подходим к лимиту, а не всегда. Тогда asyncio работает на полную когда лимит не давит, и замедляется только при необходимости.

Но для текущей нагрузки (80 пользователей, бесплатные провайдеры с мягкими лимитами) semaphore(1) + 10 сек между пользователями решает задачу и не создаёт сложности. Когда пользователей станет в 10 раз больше - перепишу на нормальный rate limiter.

Sign up to leave a comment.

Articles