2015-05-22 8 views
7

ben resources birbirinden bağımsız getirilen edilebilir bir REST isteği yürütülürken performansını artırmak için mevcut bir Spring 4 uygulamasına Reactor 2x bütünleştirmek çalışıyorum, bir nevi harita-azaltmak nereye Bir işi birden çok iş parçacığına paralel hale getirin ve sonra bir ara belleğe birleştirin.Multithread yürütme

biz olmayan bir bahar ortamında çalışan bu örnek var Şimdiye kadar: biz buffer() yöntemi ile katılmak ardından resourceToMapFunction ve kullanma dönüşümü yukarıdaki örnekte

//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); 

uygulamak, oluşturmak Promise Sonuç için beklemek ve result döndürün.

İlk sorum, Reactor'ın kullanılabileceği varsayımı bu mu? Dönüşümlerin doğru bir şekilde uygulandığını biliyorum ama belki de Reactor numaralı telefondan doğru yolu kullanmamaya yeni başlayan biriyim.

İkinci sorum, büyük bir anlaşma değil, Reactor projesinde resources girişinde sağlanan aynı sırayla dönmek için bir şey var mı? Bu, birden çok ileti dizisinde yürütüldüğünden, cevabın iyi olmadığından emin değilim, ve dediğim gibi, endişelerimden daha az, ama yine de sormak istedim. Benim Spring proje için bu kodu tanıtmak zaman

Son soru, dönüşümler ben Bahar Reaktör sürümü ile kolayca yapabilirsiniz bu şey Bean bağımlılıkları underlaying dönüşümler yürütme iş parçacığı olmayan uygulamak çünkü başarısız mı? Eğer öyleyse, nasıl yapılacağını gösteren herhangi bir link veya belge var mı?

Çok teşekkürler!

José Luis

cevap

0

Bir tampon yerine bir reduce yapıyor denediniz mi?

+0

Cevabınız için teşekkürler, beni kullanarak örnek kodlara işaret edebilir misiniz? Ayrıca, 'Spring ApplicationContext' uygulanarak nasıl kullanılır? Yani ana dişe enjekte edilen "Yaylı Fasulye" kullanın. Bu örneği takip ettim: https://github.com/reactor/reactor-samples/blob/master/src/main/java/org/projectreactor/samples/SpringSamples.java ve 'EventBus' ile bir POC olarak çalışmasını sağladık ama Son hedefim onu ​​"Streams" ile çalışmasını sağlamak. Yine yardımlarınız çok takdir ediliyor. – jbarrueta