Wpis z mikrobloga

#java #spring
Mam controller, w którym jako metoda jako parametr przyjmuje Array, i dla każdego elementu tablicy chce wykonać metodę z serwisu. Serwis wykonuje zapytanie, a następnie zwraca wynik. Da się dla każdego elementu tablicy jakoś ładnie utworzyć wątek wołający metodę z serwisu?
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@GotoFinal:
Ustalmy fakty.
Ja się nie czepiałem. ( ͡° ͜ʖ ͡°)
A ładność to kwestia gustu.
Przecież nie pisałem, że jedno jest lepsze niż drugie. ( ͡° ͜ʖ ͡°)
  • Odpowiedz
@nygga: można kontrolować wątki parallel streama tworząc własnego poola i w nim odpalając streama, co jest oczywiście strasznie niewygodne i bezsensowne/
Ech, dlaczego tak piękne API musi być tak popsute, nie mogli dać prostej możliwości zapodania własnego poola lub nawet tylko jego wielkości jako argumentu parallel czy coś. przez co parallel staje się fajną zabawką tylko do małych "akademickich" programów ;/

@sorhu: mi się jakoś utrało że Array.stream
  • Odpowiedz
@kto3: @GotoFinal:
Nie wiem, jakie jest konkretne wymaganie (wiadomo, jak na uczelni powiedzą "wątek dla każdego elementu", to się tworzy wątek dla każdego elementu), ale generalnie do dobrania rozmiaru puli wątków można użyć formuły Goetza (czy tam Subramaniana, podobno są równoważne): http://baddotrobot.com/blog/2013/06/01/optimum-number-of-threads/

Natomiast pozostaje jeszcze kwestia skalowania puli wątków kontrolera, co hystrix zaleca jako

szczytowa wartość RPS w zdrowym kontrolerze * czas wykonania na 99. percentylu + zapas
  • Odpowiedz