← Обратно към списъка

50 000 пъти месечно? Прекалените обаждания на API най-накрая са решени.

itadol5j

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

Полетна книга API Call Monitor

Как разбра?

Приятели в "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 се дължи основно на липсата на механизъм за кеширане. Решението е просто: обадете се на интерфейса с кеш.

Понякога най-простата оптимизация е най-ефективна.