2015-05-22 5 views
7

मैं एक मौजूदा Spring 4 आवेदन में Reactor 2x एकीकृत करने के लिए एक REST अनुरोध के निष्पादन जहां resources-दूसरे से अलग दिलवाया जा सकता है के दौरान प्रदर्शन बढ़ाने के लिए कोशिश कर रहा हूँ, एक तरह से नक्शा-कम हो, जहां हम एक नौकरी को कई धागे में समानांतर करें और फिर उन्हें एक बफर में शामिल करें।Multithread निष्पादन रिएक्टर 2.0 का उपयोग कर

अब तक हम है इस नमूने एक गैर वसंत माहौल में काम करने:

//Ordered resources to apply transformations. 
    List<Map<String, Object>> result; 

    result = Streams.from(resources) 
        .flatMap(m -> Streams.just(m) .dispatchOn(Environment.cachedDispatcher()) 
        .map(resourceToMapFunction::apply)) 
        .buffer().next().await(5, TimeUnit.SECONDS); 

ऊपर नमूने में, हम परिवर्तन resourceToMapFunction और उसके बाद का उपयोग कर buffer() विधि के साथ शामिल होने के लागू होते हैं, बनाने Promise परिणाम की प्रतीक्षा करने और result वापस करने के लिए।

मेरा पहला सवाल, क्या इस तरह से रिएक्टर का उपयोग किया जाता है? मुझे पता है कि परिवर्तन सही ढंग से लागू होते हैं लेकिन शायद, मैं Reactor में एक नौसिखिया होने का सही उपयोग नहीं कर रहा हूं।

मेरा दूसरा प्रश्न, एक बड़ा सौदा नहीं है, लेकिन Reactor प्रोजेक्ट में resources इनपुट में दिए गए उसी क्रम में वापस आने के लिए कुछ भी है? चूंकि यह कई धागे में निष्पादित हो रहा है, मुझे यकीन है कि जवाब नहीं है, और जैसा कि मैंने कहा है मेरी चिंताओं से कम है, लेकिन वैसे भी पूछना चाहता था।

अंतिम सवाल, जब मैं अपने Spring परियोजना के लिए इस कोड को लागू परिवर्तनों विफल हो गया क्योंकि Bean निर्भरता लागू करने के लिए अंतर्निहित परिवर्तनों निष्पादन धागे में नहीं हैं, यह कुछ मैं वसंत रिएक्टर संस्करण के साथ आसानी से कर सकते है? यदि हां, तो क्या कोई लिंक या दस्तावेज़ है जो दिखाता है कि यह कैसे करें?

बहुत बहुत धन्यवाद!

जोस लुइस

उत्तर

0

आप एक बफर की तुलना में एक reduce कर की कोशिश की बल्कि है?

+0

आपके उत्तर के लिए धन्यवाद, क्या आप मुझे कम करके नमूना कोड पर इंगित कर सकते हैं? इसके अलावा, 'स्प्रिंग एप्लिकेशन कॉन्टेक्स्ट' को लागू करने के लिए इसका उपयोग कैसे करें? i.e मुख्य धागे में इंजेक्शन 'वसंत बीन्स' का उपयोग करें। मैंने इस उदाहरण का पालन किया: https://github.com/reactor/reactor-samples/blob/master/src/main/java/org/projectreactor/samples/SpringSamples.java और इसे पीओसी के रूप में 'EventBus' के साथ काम किया लेकिन मेरा अंतिम लक्ष्य इसे 'स्ट्रीम' के साथ काम कर रहा है। फिर आपकी मदद बहुत सराहना की है। – jbarrueta

संबंधित मुद्दे