প্ৰক্সিৰ মাজেৰে অসম্পূৰ্ণ ছবি: Netty ৰ লিখন সম্পূৰ্ণতা পৰীক্ষা কৰক
প্ৰক্সিৰ জৰিয়তে ছবি অসম্পূৰ্ণভাৱে আহিলে, অচিনক্ৰনাছ ৰেসপন্স লিখন সম্পূৰ্ণ হোৱাৰ আগতে অৰিজিনে Netty চেনেল বন্ধ কৰিছে নেকি পৰীক্ষা কৰক।
এখন ছবি দ্ৰুত পোনপটীয়া সংযোগত কাম কৰে, কিন্তু লেহেমীয়া ফৰৱাৰ্ড প্ৰক্সিৰ মাজেৰে অসম্পূৰ্ণ হয়। এটা সম্ভাব্য কাৰণ হ’ল, অৰিজিনে সংযোগটো বন্ধ কৰে যেতিয়া তাৰ ৰেসপন্স এতিয়াও লিখা হৈ আছে।
Netty I/O অচিনক্ৰনাছ। writeAndFlush ৰ পৰা ঘূৰি অহাৰ অৰ্থ এই নহয় যে সেই কাৰ্য সম্পূৰ্ণ হৈছে। সেয়ে এনে ক্ৰম এটা ৰেসপন্সৰ বাবে নিৰাপদ নহয় যাৰ এতিয়াও কিউত বাইট আছে:
ctx.writeAndFlush(response);
ctx.close();
যেতিয়া HTTP বিনিময়টো ইচ্ছাকৃতভাৱে ইয়াৰ শেষ ৰেসপন্স বাৰ্তাৰ পিছত বন্ধ হৈ আছে, তেতিয়া বন্ধটো সেই লিখনৰ future ৰ সৈতে সংযুক্ত কৰক:
ctx.writeAndFlush(finalResponseMessage)
.addListener(ChannelFutureListener.CLOSE);
এই টুকুৰাটোৱে ধৰি লয় যে ৰেসপন্স ইতিমধ্যে সঠিকভাৱে গঠন আৰু ফ্ৰেমিং কৰা হৈছে। ষ্ট্ৰিম কৰা বডিৰ বাবে ইয়াৰ শেষ বাৰ্তাৰ সম্পূৰ্ণতা ব্যৱহাৰ কৰক, হেডাৰৰ লিখন নহয়। স্থায়ী HTTP সংযোগৰ বাবে, ৰেসপন্স শেষ হোৱা বাবেই কেৱল বন্ধ যোগ নকৰিব।
এপ্লিকেচনৰ স্বাভাৱিক ত্ৰুটি পৰিচালনাৰ অংশ হিচাপে future ৰ বিফলতা পৰীক্ষা কৰক। সম্পূৰ্ণতাই বিফলতা আৰু বাতিলকৰণো সামৰি লয়, সেয়ে কেৱল সম্পূৰ্ণতা ব্ৰাউজাৰৰ পৰা ডেলিভাৰী ৰছিদ নহয়।
উপযোগী তুলনা হ’ল প্ৰতিটো পথত সম্পূৰ্ণ ৰেসপন্সৰ দৈৰ্ঘ্য আৰু লিখনৰ ফলাফল। এটা প্ৰক্সিয়ে সময় এনে ধৰণে সলনি কৰিব পাৰে যে এটা বিদ্যমান জীৱনচক্ৰ ত্ৰুটি প্ৰকাশ পায়; কিন্তু ইয়াৰ উপস্থিতিয়ে প্ৰমাণ নকৰে যে ইয়াৰ কম্প্ৰেছৰ বা কেশ্বে বাইটবোৰ পেলাই দিছে।