Пять запросов за пятнадцать се... Заметка
DEV Community на русском

Пять запросов за пятнадцать секунд из одного элемента строки состояния

Расширение Claude Code для VS Code отображает лимиты использования непосредственно в строке состояния для удобства пользователя. Изначально расширение совершало частые вызовы API, что приводило к ошибкам ограничения скорости. Основной выявленной проблемой было то, что каждое окно VS Code запускало отдельный экземпляр расширения, дублируя запросы. Для решения этой проблемы был реализован общий глобальный файл хранения для сохранения данных об использовании, доступный всем окнам. Этот файл позволяет окнам считывать кэшированные данные и получать обновления только при необходимости, основываясь на интервале обновления.Была введена система претензий, чтобы предотвратить одновременное получение данных несколькими окнами. Если окно обнаруживает, что другое окно уже получает данные, оно ждет. К таймерам был добавлен случайный джиттер, чтобы избежать синхронизированных запросов от нескольких окон. Когда API возвращает ошибку ограничения скорости 429, эта информация теперь сохраняется в общем файле, предотвращая дальнейшие запросы до истечения срока блокировки.Расширение также улучшило обработку сбоев проверки API. Вместо немедленного отображения предупреждения, оно теперь сохраняет последние известные данные об использовании и повторяет попытки через увеличивающиеся интервалы. Предупреждения отображаются только после нескольких последовательных сбоев. Расширение явно указывает, что оно только считывает учетные данные для входа и никогда не обновляет или не записывает их обратно. Оно совершает один общий запрос API на окно для получения данных об использовании и избегает телеметрии или других сетевых вызовов. Изложенные принципы заключаются в том, чтобы предполагать одну копию на окно, рассматривать ошибки 429 как инструкции подождать и считать единичные сбои шумом, а не критическими.