KamoCRM

Eseguire chiamate a monte con una connessione e un timeout di lettura

FixAPIService
Shipped
23 settembre 2026 alle ore 10:18 UTC
Author
Kamo
Commit
eb9cc3b

Entrambi i fagioli RestTemplate sono stati costruiti da un nudo JdkClientHttpRequestFactory senza tempo. Una a monte che accetta la connessione e poi non risponde mai -- un baccello cuneo, un deadlock -- parcheggiato un filo di gateway su quella presa per sempre; abbastanza di quei gas di scarico la piscina filettata Tomcat finito dietro il singolo /api/** chokepoint della piattaforma e abbattere ogni inquilino, non solo il chiamante del lento percorso. Collegare il timeout è 5s: il servizio a monte esiste sempre in-cluster, quindi un collegare non stabilito da allora significa che il baccello dietro di esso è andato. Leggi timeout è un 120s globale piuttosto che un valore per-prefisso -- questa classe ha no per-route RestTemplate oggi, la minaccia (un a monte che mai risposte) è lo stesso indipendentemente dal prefisso, e 120s copre comodamente più lento legittimo chiama questo gateway in avanti (grandi upload a /api/docs e /api/media, chat AI, vendite di fatturazione). L'ingresso di Traefik rispondereTimeouts.readTimeout è 3600s, quindi nulla davanti a questa chiamata era mai andando tagliare una richiesta più breve di 120s comunque. RestTemplateTimeoutTest guida una presa reale che accetta il TCP connessione e poi mai scrive una risposta, utilizzando un breve timeout in luogo dei veri 120s quindi il test stesso non può appendere la suite, e afferma che il cliente si arrende da solo. Ritornare alla fabbrica nuda rende la chiamata sottostante appeso oltre la guardia 3s di JUnit, che è esattamente la modalità di fallimento che questo risolve.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing