CONNECT-এর সময় আটকে যাওয়া Apache HttpClient 5 প্রক্সির জন্য টাইমআউট
টানেল সেটআপের জন্য কানেকশন ম্যানেজারের সকেট I/O টাইমআউট নির্ধারণ করুন, আলাদা TCP কানেক্ট টাইমআউটের সাথে।
প্রক্সিটি TCP গ্রহণ করেছিল কিন্তু CONNECT উত্তর কখনো শেষ করেনি। ওয়েবসাইটের উত্তর এখনো শুরু হয়নি; শুধু সেই পরের উত্তরের জন্য নির্ধারিত টাইমআউট এই সেটআপকে অনির্দিষ্টকাল অপেক্ষা করাতে পারে।
Apache HttpClient 5.3.1-এ, কানেকশন ম্যানেজারের ডিফল্টগুলো নির্ধারণ করুন:
var connection = ConnectionConfig.custom()
.setConnectTimeout(Timeout.ofSeconds(5))
.setSocketTimeout(Timeout.ofSeconds(10))
.build();
var manager = PoolingHttpClientConnectionManagerBuilder.create()
.setDefaultConnectionConfig(connection)
.build();
var client = HttpClients.custom()
.setConnectionManager(manager)
.setProxy(new HttpHost("http", "proxy.example", 8080))
.build();Apache HttpComponents 5-এর ক্লাসগুলো org.apache.hc-এর অধীনে ব্যবহার করুন, Timeout সহ core5 ইউটিলিটি প্যাকেজে। ক্লায়েন্টকে তার কাজের জন্য রাখুন এবং শেষে বন্ধ করুন। একটি বিচ্ছিন্ন পাবলিক HTTP পরীক্ষার জন্য, HTTP প্রক্সি তালিকা থেকে একটি প্রার্থী এন্ডপয়েন্ট সরবরাহ করে; টাইমআউট তুলনা করার সময় গন্তব্য স্থির রাখুন।
| সীমা | যে অপেক্ষা সমাধান হয় |
|---|---|
| কানেক্ট টাইমআউট | সংযোগ স্থাপন |
| সকেট টাইমআউট | CONNECT বিনিময়সহ ডিফল্ট I/O নিষ্ক্রিয়তা |
| পুল অধিগ্রহণ / অ্যাপ্লিকেশন উত্তর | অন্যান্য আলাদাভাবে কনফিগার করা ধাপ |
CONNECT-এর পরে, TLS-এর HttpClient 5-এর TLS কনফিগারেশনের মাধ্যমে নিজস্ব সেটআপ সীমা লাগতে পারে। এছাড়াও নিষ্ক্রিয়তা ও মোট সময়সীমার মধ্যে পার্থক্য করুন: বিরতিহীন বাইট বা বারবার প্রমাণীকরণ বিনিময় মোট সময় বাড়াতে পারে। অ্যাপ্লিকেশনের সমর্থিত সময়সীমা বা বাতিল নীতি ব্যবহার করুন সম্পূর্ণ কার্যক্রমের জন্য একটি বাজেট.