ایک worker قابل استعمال پراکسی تلاش کرتا ہے۔ آپ اس کا پتہ واپس کرتے ہیں، باقی futures پر cancel کال کرتے ہیں، اور توقع کرتے ہیں کہ نیٹ ورک کی سرگرمی رک جائے گی۔ ہو سکتا ہے نہ رکے۔

Future کو اس کے callable کے شروع ہونے سے پہلے منسوخ کیا جا سکتا ہے۔ جب تھریڈ پہلے ہی کوئی درخواست چلا رہا ہو، تو اس کا Future منسوخ کرنا اس ساکٹ آپریشن کو نہیں روکتا۔ worker کو اپنا محدود نیٹ ورک آپریشن اور صفائی کا راستہ درکار ہے۔

executor کی عمر بھی اہم ہے۔ ThreadPoolExecutor کا سیاق چھوڑنا اس کے کام کے ختم ہونے کا انتظار کرتا ہے۔ ایک تیز نتیجہ تلاش کر کے پھر کئی سست workers کا انتظار کرنا کال کرنے والے کی کل تاخیر کو جیتنے والے کی بتائی گئی تاخیر جیسا بالکل نہیں دکھا سکتا۔

ریس شروع کرنے سے پہلے محدود کریں

  • لامحدود عوامی فہرست جمع کرانے کے بجائے بیک وقت جانچ کی تعداد محدود کریں۔ مفت پراکسی فہرست جانچنے والے کے ان پٹ کے لیے امیدوار فراہم کرتی ہے، ہر endpoint کا پروٹوکول worker کے لیے رکھا جاتا ہے۔
  • ہر درخواست کو مناسب کنکشن اور پڑھنے کی پالیسی دیں۔
  • کال کرنے والے کو مجموعی فیصلے کا بجٹ دیں۔
  • طے کریں کہ فیصلے سے زیادہ زندہ رہنے والے workers کے نتائج کون نکالتا یا بند کرتا ہے۔

Future کے لیے کم انتظار کرنا اس کی بنیادی درخواست کو چھوٹا کرنے کے مترادف نہیں۔ اسی طرح، نتیجہ چھوڑ دینا ہر نیٹ ورک وسیلے کو فوراً آزاد نہیں کرتا۔

پہلا کامیاب نتیجہ بھی صرف پہلی کامیاب جانچ ہے۔ یہ شیڈولنگ، کیش شدہ کنکشنوں اور مخصوص جانچ منزل پر منحصر ہو سکتا ہے۔ یہ ثابت نہیں کرتا کہ endpoint عالمی طور پر تیز ترین ہے یا اصل کام کامیاب ہوگا۔

اکثر حالیہ مشاہدات کے ساتھ ایک چھوٹا محفوظ پول ہر ڈاؤن لوڈ سے پہلے پوری فہرست کے ساتھ ریس کرنے سے آسان ہوتا ہے۔ ریکارڈ اپ ڈیٹ کرنے کے لیے اصل آپریشن کا نتیجہ استعمال کریں، ناکامیوں کے لیے کنٹرول شدہ بازیابی کی پالیسی کے ساتھ۔ پیشگی جانچ کو عادت سے ہر کام کو دوگنا کرنے کے بجائے اپنی لاگت کمانی چاہیے۔

متعلقہ مضامین