Бір worker жарамды прокси табады. Сіз оның мекенжайын қайтарасыз, қалған future-лерде cancel шақырасыз және желі әрекеті тоқтайды деп күтесіз. Тоқтамауы мүмкін.

Future оның callable-ы басталмай тұрып болдырмауға болады. Ағын сұранысты орындап жатса, оның Future-ін болдырмау сол socket операциясын үзбейді. Worker-ге өзінің шектелген желілік операциясы мен тазарту жолы қажет.

Executor-дің өмір сүру ұзақтығы да маңызды. ThreadPoolExecutor контекстінен шығу оның жұмысының аяқталуын күтеді. Бір жылдам нәтиже тауып, содан кейін бірнеше баяу worker-ді күту шақырушының жалпы кешігуін жеңімпаздың хабарлаған латенттілігіне мүлде ұқсамайтын етіп көрсетуі мүмкін.

Жарысты бастамас бұрын шектеңіз

  • Шексіз жалпыға ортақ тізімді ұсынудың орнына бір мезгілдегі тексерулер санын шектеңіз. Тегін прокси тізімі тексерушінің кірісіне кандидаттар ұсынады, әрбір соңғы нүктенің протоколы worker үшін сақталады.
  • Әрбір сұранысқа тиісті қосылу және оқу саясатын беріңіз.
  • Шақырушыға жалпы шешім бюджетін беріңіз.
  • Шешімнен ұзақ өмір сүретін worker-лердің нәтижелерін кімнің босататынын немесе жабатынын анықтаңыз.

Future үшін азырақ күту оның негізгі сұранысын қысқартумен бірдей емес. Сол сияқты, нәтижеден бас тарту барлық желілік ресурстарды бірден босатпайды.

Бірінші сәтті нәтиже де тек бірінші сәтті тексеру. Ол жоспарлауға, кэштелген қосылымдарға және нақты тексеру межелісіне байланысты болуы мүмкін. Ол соңғы нүктенің әмбебап түрде ең жылдам екенін немесе нақты тапсырманың орындалатынын дәлелдемейді.

Көбінесе соңғы бақылаулары бар шағын сақталған пул әр жүктеу алдында бүкіл тізіммен жарысудан қарапайым. Жазбаны жаңарту үшін нақты операцияның нәтижесін пайдаланыңыз, сәтсіздіктер үшін бақыланатын қалпына келтіру саясатымен. Алдын ала тексеру әдет бойынша әр тапсырманы екі еселеудің орнына өз құнын ақтауы керек.

Қатысты мақалалар