Аз разбирам вашето описание и вашата гледна точка. Сега ние трябва да разберете как тя Предполагам, че да работят технически.
Един въпрос, което виждам тук е как ние ще признае, че ние вече имаме наличните лимити, след като тези, където достигна преди.
Може да просто всеки път помолим предпочитан доставчик и след това отидете на следващата. Това ще струва производителността-, защото за всяка заявка към страница, която изисква превод, ние ще прави неуспешни повиквания на предпочитан доставчик, след това за следващия един (така че може да бъде няколко неуспешни повиквания, когато vBET ще поддържа повече Апис).
Друго решение би било да съхранява информация, че предпочитан доставчик не е на разположение и да отидете директно към следващата. Това би било много по-бързо, тъй като проверка на локална променлива е много по-бързо, отколкото да се чака за отговор от външен сървър. Този път имаме друг въпрос - ние не знаем, когато предпочитан доставчик е на разположение. Ние, разбира се, може да направи някои планирана задача, която ще поиска за прости (кратко) превод например веднъж на час / ден, за да го проверите. Така че в тази стратегия, ние трябва да решим как често по подразбиране такава задача, предполагам, за да работят. Разбира се, ние ще го проверя, само, когато някои доставчикът е маркиран като не са налични.
Също така, ако отбелязваме доставчици, че няма наличност - какво да направя, когато ние знаем, че не са налични всички доставчици - добавяне на някаква информация за крайния потребител, или просто да превежда какво е в кеш, а останалите като оригинално, без всякаква допълнителна информация за временна липса на превод доставчици .
Без значение какъв начин ще бъде направено, Google ще се третира като един API (v1 или V2 в зависимост от конфигурацията) - няма смисъл да го разделят, защото Google v1 ще бъдат закрити в най-скоро време.
Друго нещо, е да се позволи да конфигурирате доставчици на опашка за всеки език двойка отделно. В този момент vBET вече позволява да конфигурирате превод доставчик за всяка двойка на език. Аз мисля, че можем да го промените от една стойност на стойности, разделени със запетая (CSV). По този начин, ние ще знаем за всяка двойка на език който доставчици поддържат този превод и какви са поръчка преференции (само ред в CSV списък).
Моля, обърнете внимание: Това така или иначе ще има известно влияние за добро изпълнение. Вместо да се създава един обект за превод ние ще трябва да се създаде масив от такива обекти и допълнителни амбалаж обект (да го направи прозрачен за други части на код и по-малко склонни бъгове). Разбира се, ние няма да създавате обекти за доставчиците, ние знаем, не са на разположение в този момент.
Решение за това ще бъде да преконфигурирате за по-добра производителност и премахване на доставчици на опашката - точно както е в момента - един доставчик за всеки език двойка.
Това не трябва да се скъпи за изпълнение, но все още някои допълнителни логика и изразходването на памет.
Моля, кажете, кое решение е за предпочитане.