← Bumalik sa listahan

50,000 beses sa isang buwan? Ang labis na pagtawag ng API ay nalutas na sa wakas.

itadol5j

Kamakailan, isang kaibigan ang lumapit sa akin at nagsabi na nasumpungan niya ang isang malubhang problema sa likod ng entablado ng flying book developer: /open-apis/bot/v3/info, ang interface na ito ay tinatawag na daan - daang beses sa isang minuto, at 50,000 beses sa isang buwan ito ay tatakbo!

Tinawag ng API ang Monitor sa Flight Book

Paano mo nalaman?

Nakita ng mga kaibigan sa "API Calle Statistics" ang isang napakataas na bilang ng mga panawagan para sa interface na ito:

Mga PahiwatigHalaga
Bilang ng pang - araw - araw na mga pagdalaw43200+ beses
Tumawag sa bawat minuto~ 300 beses
Tinatayang buwanang pagkonsumoHalos 50,000 ulit.

Wala siya: Isa akong robot. Paano ako makadalaw nang napakadalas?

Ang ugat na mga sanhi ng problema

Pinatakbo ko ang flybook extension code ng OpenClaw at nasumpungan ko ito sa dalawang lugar:

1.

Ang tungkuling probeFeishu() ay tumatawag sa ugnayang botinfo para sa lumilipad na mga aklat tuwing magtatanong ka tungkol sa katayuang robot. Ang gawaing ito ay tinatawag sa sumusunod na mga senaryo:

  • Magbukas ng Buksan sa simula
  • Kapag ang panlabas na sistema ay nagtatanong
  • Kapag ang WebSocket ay hindi na kailangan

2. Walang mekanismo ng cache

Ang orihinal na kodigo ay "Hingin ang bawat tawag", at walang cache. Kahit na humingi ka ng isang kalagayan na 10 beses, magkakaroon ka ng 10 tawag sa API.

Mga solusyon: 5 minutong mekanismo ng cache

Nagdagdag ako ng simpleng cache sa probe.t:

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

Simple lamang ang pangunahing lohika:

  • Unang Panawagan ♪ Kahilingan para sa lumilipad na mga aklat na API ♪ Cach
  • Muling tumawag sa loob ng 5 minuto. ○ Ituro ang cache sa likod (walang bagong kahilingan na pinasimulan)
  • Ang kabiguan ay nagbara rin. → Iwasan ang paulit - ulit na paghiling kapag nabigo

Binagong mga epekto

PagkakaibaBago Maging Matapangbinago
Bawat kalagayan sa buhayTawag ng APITuwirang Kuto
Sawi sa muling pagsubokDi - tiyak na RetryKoche 5 Minuto
Tinatayang buwanang pagkonsumo50000+ beses~ 300 beses

Simple lamang ito.: Isang sukdulang bilang na 1 tawag sa bawat 5 minuto, 24 oras bawat araw = 288 beses/month, humigit-kumulang 3,500 beses sa isang taon. Ang orihinal na 50 grand/month limit, ito ay hindi gonna run out!

Pagkakapit ng eksena

Ang programang ito ay lalo nang angkop para sa:

  • Pinalawak ng mga Tagagamit ang OpenClaw
  • Gumawa ng sarili mong lumilipad na aklat na robot at madalas na tawagin ang botinfo interface
  • Ang API scale ay apurahan at nagnanais na baguhin ang bilang ng mga tawag

Sumaryo

Ang problemang over-allocation ng Flying Book API ay pangunahing sanhi ng kawalan ng mekanismong cache. Simple lamang ang solusyon: tawagin ang interface na may cache.

Kung minsan, ang pinakasimpleng pagiging perpekto ang pinakamabisa.