← Zpět na seznam

50.000 krát měsíčně? Přemrštěné volání API bylo konečně vyřešeno.

itadol5j

Nedávno za mnou přišel přítel a řekl, že našel vážný problém v zákulisí vývojáře létající knihy: / open-apis / bot / v3 / info, toto rozhraní se nazývá stokrát za minutu a 50.000 krát za měsíc to bude běžet!

Letová kniha API Volání Monitor

Jak jsi to zjistil?

Přátelé v "API Call Statistics" v zákulisí Flying Book Developer viděl mimořádně vysoký počet volání pro toto rozhraní:

UkazateleHodnota
Počet denních hovorů43200 + krát
Volat každou minutu~ 300 krát
Odhadovaná měsíční spotřebaSkoro 50.000 krát.

Je pryč, jsem robot. Jak můžu volat tak často?

Základní příčiny problému

Projel jsem rozšiřovací kód OpenClaw a našel jsem ho na dvou místech:

1. Kontrola stavu spoušť API volání

Funkce ProbeFeishu () volá rozhraní botinfo pro létání knih pokaždé, když se ptáte na stav robota. Tato funkce je volána v následujících scénářích:

  • Získat OpenID při spuštění
  • Pokud stav dotazu externího systému
  • Při odpojení WebSocket

2. Nedostatek úschovny

Původní kód byl "Zeptejte se každý hovor", a tam nebyl žádný cache. I když budete žádat o stav desetkrát, budete mít 10 API volání.

Řešení: 5 minutový cache mechanismus

Do probe.ts jsem přidal jednoduchou cache:

// 缓存配置:5分钟内不重复调用 API
const CACHE_TTL_MS = 5 * 60 * 1000;
const botInfoCache = new Map();

Základní logika je jednoduchá:

  • První výzva Žádost o letící knihy API
  • Zavolej znovu za 5 minut. Η Přímá zádová cache (bez nového požadavku)
  • Selhání se také ucpalo. → Vyhněte se opakovaným požadavkům při selhání

Změněné účinky

KontrastPřed změnoumodifikováno
Každý status dotazuVolejte APIPřímá cache
Nepodařilo se to zkusit znovuNeomezené opakováníCache 5 minut
Odhadovaná měsíční spotřeba50000 + krát~ 300 krát

Je to jednoduché.: Maximálně 1 hovor za 5 minut, 24 hodin denně = 288 krát / měsíc, přibližně 3500 krát ročně. Původní limit 50 tisíc za měsíc, to nebude vyčerpat!

Aplikovat scénu

Tento program je vhodný zejména pro:

  • Uživatelé rozšířeni o OpenClaw
  • Vytvořte si vlastní létající knihu robot a volat botinfo rozhraní často
  • Stupnice API je naléhavá a chce optimalizovat počet hovorů

Shrnutí

Problém přerozdělení API v Létající knize je v podstatě způsoben nedostatkem cache mechanismu. Řešení je jednoduché: volat rozhraní s cache.

Někdy je nejjednodušší optimalizace nejúčinnější.