Bitta worker yaroqli proksi topadi. Siz uning manzilini qaytarasiz, boshqa futurelarda cancel chaqirasiz va tarmoq faoliyati to'xtaydi deb kutasiz. To'xtamasligi mumkin.

Future o'z callable'i boshlanishidan oldin bekor qilinishi mumkin. Oqim allaqachon so'rovni bajarayotgan bo'lsa, uning Futureini bekor qilish o'sha socket operatsiyasini to'xtatmaydi. Worker o'zining cheklangan tarmoq operatsiyasi va tozalash yo'liga muhtoj.

Executorning umri ham muhim. ThreadPoolExecutor kontekstidan chiqish uning ishi tugashini kutadi. Bitta tez natija topib, keyin bir nechta sekin workerni kutish chaqiruvchining umumiy kechikishini g'olib e'lon qilgan kechikishga mutlaqo o'xshamaydigan qilib ko'rsatishi mumkin.

Poygani boshlashdan oldin cheklang

  • Cheksiz ommaviy ro'yxatni topshirish o'rniga bir vaqtning o'zida bajariladigan tekshiruvlar sonini cheklang. Bepul proksi ro'yxati tekshiruvchining kiritishiga nomzodlar beradi, har bir endpoint protokoli worker uchun saqlanadi.
  • Har bir so'rovga mos ulanish va o'qish siyosatini bering.
  • Chaqiruvchiga umumiy qaror byudjetini bering.
  • Qarordan uzoqroq yashaydigan workerlarning natijalarini kim oqizishini yoki yopishini belgilang.

Future uchun kamroq kutish uning asosiy so'rovini qisqartirish bilan bir xil emas. Xuddi shunday, natijadan voz kechish barcha tarmoq resurslarini darhol bo'shatmaydi.

Birinchi muvaffaqiyatli natija ham faqat birinchi muvaffaqiyatli tekshiruvdir. U rejalashtirishga, keshlangan ulanishlarga va aniq tekshiruv manziliga bog'liq bo'lishi mumkin. U endpointning universal eng tez ekanligini yoki haqiqiy vazifa muvaffaqiyatli bo'lishini isbotlamaydi.

Ko'pincha so'nggi kuzatishlarga ega kichik saqlanadigan hovuz har bir yuklab olishdan oldin butun ro'yxat bilan poyga qilishdan oddiyroq. Yozuvni yangilash uchun haqiqiy operatsiya natijasidan foydalaning, muvaffaqiyatsizliklar uchun boshqariladigan tiklash siyosati bilan. Dastlabki tekshiruv odat bilan har bir vazifani ikki barobar oshirish o'rniga o'z xarajatini qoplashi kerak.

O'xshash maqolalar