Обновить
4K+
5
@Tezariumread⁠-⁠only

Пользователь

0,5
Рейтинг
3
Подписчики
Отправить сообщение

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

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

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

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

Прошу прощения, немного ошибся с названием - активный форк называется Marzneshin: https://github.com/marzneshin/marzneshin Развивается сообществом, есть улучшения в части масштабируемости и мультинодовости.

Да, основная ветка Marzban действительно давно не обновлялась. Но есть активный-форк Marzban-ng, который продолжает развиваться сообществом. Плюс для моих задач текущий функционал полностью достаточен: создание пользователей, управление подписками, мультинодовость. Критических уязвимостей не обнаружено, в продакшене работает стабильно. Если знаете лучшую альтернативу - с удовольствием рассмотрю, всегда интересно услышать мнение практиков.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность