50 000 пъти месечно? Прекалените обаждания на API най-накрая са решени.
Наскоро един приятел дойде при мен и ми каза, че е намерил сериозен проблем в задната сцена на разработчика на летящи книги: /open-apis/bot/v3/info, този интерфейс се нарича стотици пъти в минута и 50 000 пъти в месеца ще изтече!

Как разбра?
Приятели в "API Call Statistics" зад сцената на Flying Book Developer видях изключително голям брой повиквания за този интерфейс:
| Показатели | Стойност |
| Брой дневни обаждания | 43200+ пъти |
| Обаждай се всяка минута. | ~ 300 пъти |
| Прогнозно месечно потребление | Близо 50 000 пъти. |
Той си отиде: аз съм робот. Как мога да се обаждам толкова често?
Основните причини за проблема
Проверих кода за разширение на книжката на OpenClaw и го намерих на две места:
1. Проверка на състоянието задейства API повикване
Сондата Feishu() функция призовава интерфейса на botinfo за летящи книги всеки път, когато попитате за робот статус. Тази функция се нарича в следните сценарии:
- Получаване на OpenID при стартиране
- Когато състоянието на заявката на външната система
- Когато WebSocket е изключен
2. Липса на кеш механизъм
Оригиналният код беше "Поискай всяко обаждане" и нямаше кеш. Дори и да поискате състояние 10 пъти, ще имате 10 API обаждания.
Решения: 5 минути кеш механизъм
Добавих просто кеш към сондата.
// 缓存配置:5分钟内不重复调用 API
const CACHE_TTL_MS = 5 * 60 * 1000;
const botInfoCache = new Map();
Основната логика е проста:
- Първо повикване ♪ Request for flying books API ♪ Cash results
- Обадете се след 5 минути. .
- Провалът също е запушен. → Избягвайте повтарящи се заявки при провал
Модифицирани ефекти
| Контраст | Преди да промените | променен |
|---|---|---|
| Всяка заявка за статус | Обадете се на API | Директна кеш |
| Грешка при опита отново | Неограничена ретрия | Кеш 5 минути |
| Прогнозно месечно потребление | 50000+ пъти | ~ 300 пъти |
Просто е.: Максимум 1 повикване на 5 минути, 24 часа на ден = 288 пъти/месец, приблизително 3500 пъти годишно. Оригиналният лимит от 50 бона на месец няма да свърши!
Прилагане на сцена
Тази програма е особено подходяща за:
- Потребителите са разширени с OpenClaw
- Разработване на свой собствен летящ книга робот и се обадете на botinfo интерфейс често
- Скалата API е спешна и иска да оптимизира броя на обажданията
Резюме
Проблемът с преразпределението на Летящата книга API се дължи основно на липсата на механизъм за кеширане. Решението е просто: обадете се на интерфейса с кеш.
Понякога най-простата оптимизация е най-ефективна.