Ja razumijem tvoj opis i svoje mjesto. Sada moramo saznati kako to pretpostavimo da rade tehnički.
Jedno pitanje vidim ovdje je kako ćemo prepoznati da smo već granica na raspolaganju nakon one u kojima postignut prije.
Mi jednostavno svaki put pitati željeni provider, a zatim idite na sljedeći jedan. To će koštati performanse - jer za svaki zahtjev na stranici koja zahtijeva prijevod, mi ćemo je neuspješno poziv na željenu usluga, zatim na sljedeći jedan (pa to može biti nekoliko neuspješnih poziva kada vBET će podržati više API).
Ostali rješenje bi bilo za pohranu podataka koji preferirani davatelj usluga nije dostupna i ići izravno na sljedeći jedan. To bi bilo puno brže, jer se provjera lokalna varijabla je puno brže nego čeka odgovor od vanjskog poslužitelja. Ovaj put smo druga pitanja - ne znamo kada preferirani davatelj usluga je dostupna. Možemo, naravno, napravio neke zakazani zadatak koji će pitati za jednostavne (kratke) prijevod za primjerice jednom po satu / danu to provjeriti. Tako je u ovu strategiju moramo odlučiti koliko često po defaultu kao zadatak trebali raditi. Naravno da bi to provjeriti tek kada su neki usluga je označena kao nije dostupna.
Također, ako ćemo označiti kao pružatelja nedostupan - što učiniti kad znamo da su svi pružatelji usluga nisu dostupne - dodati neke informacije za krajnjeg korisnika ili samo prevesti ono što je u cache i ostalo kao izvornik, bez dodatne informacije o privremenom nedostatku prijevoda usluga .
Bez obzira na koji način to će biti učinjeno, Google će biti tretirani kao jedan API (v1 v2 ili ovisno o konfiguraciji) - nema smisla da ga podijeliti, jer Google V1 će biti zatvoren vrlo brzo.
Druga stvar je kako bi se omogućilo da konfigurirate davatelji red za svaki jezični par zasebno. U ovom trenutku vBET već omogućuje da konfigurirate prijevod provider za svaki jezični par. Mislim da možemo ga promijeniti iz jedne vrijednosti razdvojene zarezom (CSV). Na taj način ćemo znati za svaki jezični par koji pružatelji podržati ovaj prijevod i ono što su reda preferencije (samo da bi se na popisu CSV).
NAPOMENA: To će imati neki utjecaj izvedbe ionako. Umjesto stvaranja jednog objekta za prijevod ćemo morati stvoriti niz takvih objekata i dodatne pakiranje objekt (kako bi se transparentno za druge dijelove koda i manje skloni bugova). Naravno, nećemo stvoriti objekte za pružatelje znamo nisu dostupne u ovom trenutku.
Rješenje za to bi bilo da ponovo za bolje performanse i ukloniti davatelja red - baš kao što je sada - jedan davatelj po jezični par.
To ne bi trebalo biti skupo za performanse, ali još uvijek neke dodatne logike i utrošku memorije.
Molimo Vas da što je rješenje preferira.