← Tilbake til listen

50 000 ganger i måneden? APIs store samtaler er endelig løst.

itadol5j

Nylig kom en venn til meg og sa at han fant et alvorlig problem i bakfasen av den flygende bokutvikleren: /open-apis/bot/v3/info, dette grensesnittet kalles hundrevis av ganger i minuttet, og 50 000 ganger i måneden kommer det til å løpe ut!

API-samtaleovervåker

Hvordan fant du ut det?

Venner i "API Call Statistics" backstage i Flying Book Developer så et usedvanlig stort antall samtaler for dette grensesnittet:

IndikatorerVerdi
Antall daglige samtaler43200+ ganger
Ring hvert minutt300 ganger
Anslått månedlig forbrukNært 50 000 ganger.

Jeg er en robot. Hvordan kan jeg ringe så ofte?

Årsakene til problemet

Jeg kjørte OpenClaws utvidelseskode og fant den på to steder:

1. Statuskontroll utløser API-samtale

SondenFeishu () - funksjonen kaller botinfo-grensesnittet for flygende bøker hver gang du spør om robotstatus. Denne funksjonen kalles i følgende scenarier:

  • Få OpenID ved oppstart
  • Når ekstern systemspørringsstatus
  • Når WebSocket er frakoblet

2. Mangel på en cachemekanisme

Den opprinnelige koden var " spør alle samtaler", og det var ingen cache. Selv om du ber om en tilstand på 10 ganger, vil du ha 10 API-samtaler.

Løsninger: 5 minutters cache mekanisme

Jeg la til en enkel cache til probe.ts:

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

Kjernelogikken er enkel:

  • Første samtale Forespørsel om flygende bøker API # Cache resultater
  • Ring igjen om 5 minutter. ○ Direkte tilbake cache (ingen ny forespørsel initiert)
  • Mislykkelsen er også tilstoppet. Unngå gjentatte forespørsler når feil

Endringer

KontrastFør endringendret
Hver statusspørselRing APIDirekte cache
Klarte ikke å prøve igjenUbegrenset forsøkCache 5 minutter
Anslått månedlig forbruk50000+ ganger300 ganger

Det er enkelt.: Maksimalt 1 anrop per 5 minutter, 24 timer per dag = 288 ganger/måned, ca. 3500 ganger i året. Den originale 50 000/månedsgrensen, det vil ikke gå ut!

Bruk scene

Dette programmet er spesielt egnet til:

  • Brukere utvidet med OpenClaw
  • Utvikle din egen flygende bok robot og ringe botinfo grensesnittet ofte
  • API-skalaen er akutt og ønsker å optimalisere antall samtaler

Sammendrag

Flying Book APIs over-allokasjon problem er i hovedsak forårsaket av mangel på en cache mekanisme. Løsningen er enkel: Ring grensesnittet med en cache.

Noen ganger er den enkleste optimalisering den mest effektive.