KamoCRM

Erorile tranzitorii și cheile eșuate ale suprafeței (nu falsificați trecerea)

FixTranslateService
Shipped
10 mai 2026 la 04:33 UTC
Author
Kamo
Commit
c0a87b7

Două moduri de eșec au fost imposibil de distins în răspuns, astfel încât scenariul nu le-a putut spune în afară și a păstrat "traduce" aceleași chei pentru limba engleză pe fiecare rula de sincronizare, cu subgrupe aleatoare reușind din cauza care exact LibreTraducere cerere sa întâmplat să aterizeze în timpul unei reporniri lucrător: 1. Furnizor eroare (Timeout, 5xx, conexiune refuzată la jumătatea repornirii) 2. Furnizorul a reușit, dar a returnat sursa neschimbat (legit "nu" traducere necesară" Amândoi au ajuns să scriem sursa ca traducere. Modificări: *LibreTranslateProvider / BergamotProvider: 3 încercări cu 1s/3s backoff pentru eșecuri tranzitorii (5xx, 429, timeout, conexiune erori); 4xx (non-429) se propagă imediat, deoarece reîncercarea a Cererea malformată nu va ajuta niciodată. Pauză de cerere de apel = 30 de ani. Aruncă pe retry epuizare în loc de a returna textul sursă. * FurnizorRouter: acum distinge "fiecare furnizor de sprijin eroare" (aruncare) de la "cel puțin unul a reușit, dar a returnat sursa" (legitimă passthrough Fără suport neschimbat. Nu-ţi face griji. capturi cu excepții per cheie; le colectează într-o nouă listă de chei eșuate pe răspunsul, și omite chei eșuate din mesaje. * LotTranslateResponse: adaugă câmpul Keys eșuat. * traduce.ts: citește chei eșuate, nu scrie aceste chei înapoi, așa apitranslated[cheie] ?? existând [cheie] Fallback lasă anterior Valoarea în limba engleză în loc cur==enVal și re-queues exact acele chei pentru retry. Teste: teste de regresie adăugate pentru "toți furnizorii aruncări greșite," "la cel puțin unul a reușit cu text neschimbat returnează textul," "router cădere pe eroarea primară tranzitorie" și TranslationService partiție corectă în mesaje vs chei eșuate.

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