मैं एक जर्सी StreamingOutput
कि ठीक जब तक हम जर्सी 2.16 करने के लिए उन्नत काम कर रहा था का उपयोग कर रहा है। ये रही चीजें। मेरे StreamingOuput
कुछ परिस्थितियों में उत्पादन धीरे-धीरे उत्पन्न करता है। मैं नियमित रूप से डेटा लिखता हूं, लेकिन मैं इसे बहुत धीरे-धीरे लिखता हूं और थोड़ी देर में इसे थोड़ा सा करता हूं। मैं flush()
OutputStream
StreamingOutput.write()
को हर बार जब मैं किसी भी बाइट्स बारे में पारित कर दिया पर कॉल, लेकिन फ्लश() कोई असर नहीं होता है। OutputStream
पर 8K लिखा गया है जब तक तार पर कुछ भी नहीं भेजा जाता है। दुर्भाग्यवश, कुछ परिस्थितियों में, 8K समय लिखा गया है, ग्राहक का समय समाप्त हो गया है।बुला फ्लश() पर जर्सी StreamingOutput कोई प्रभाव नहीं
मैं जर्सी स्रोत से कुछ डाउनलोड किया है और कुछ डिबगिंग के माध्यम से, मुझे लगता है कि OutputStream
write()
को दिया गया UnCloseableOutputStream
जो एक CommittingOutputStream
लपेटता है।
CommittingOutputStream
में बफरिंग सक्षम है, और इसलिए फ्लश() अनिवार्य रूप से एक नो-ऑप है जब तक प्रतिक्रिया पूरी नहीं होती है (पूर्ण)।
तो, मैं एक अचार में हूँ। मैं एक StreamingOutput
(या अन्यथा एक निर्गम धारा पर लिखते) का उपयोग कैसे कर सकते हैं और तार पर बाइट्स भेजने के लिए पहले पूरे प्रतिक्रिया पूरा हो गया है उसे बलपूर्वक? क्या जर्सी के साथ ऐसा करने का कोई और तरीका है? ऐसा करने के लिए मुझे ResponseBuilder
पर कोई भी विधि नहीं मिल रही है। मुझे बफरिंग बंद करने का कोई रास्ता नहीं मिल रहा है।