Mam aplikację na Androida, która obecnie korzysta z biblioteki Volley
, aby wysyłać żądania sieciowe i wyświetlać pobrane obrazy za pomocą NetworkImageView
.Równoległe żądania HTTP z Retrofitem
Chciałbym przetestować możliwości Retrofit
i ponieważ muszę uruchomić wiele wniosków (tysięcy) jestem nieco zaniepokojony równoległego wykonania. Volley
obsługuje żądania równoległe z RequestQueue
, które ograniczają jednocześnie uruchomione żądania do czterech, podczas gdy inne żądania są kolejkowane, czekając na wykonanie. W dokumentacji Retrofit
nie znalazłem sposobu na obsłużenie liczby jednoczesnych żądań i podejrzewam, że takie szczegóły pozostawia się programistom w tej bibliotece.
Czy to prawda? Jeśli tak, czy jest dostępna biblioteka/biblioteka z Androidem? W przeciwnym razie, jakie są najlepsze praktyki dotyczące obsługi równoległych żądań?
Sugerujesz użycie "ThreadPoolExecutor" do obsługi moich wątków? Jeśli tak, użyłem tego przed migracją do 'Volley', ale miałem dwa główne problemy: 1) Zgubiłem niektóre żądania, ponieważ kolejka była pełna, Volley ma nieograniczoną kolejkę. 2) Niektóre żądania zostały usunięte z kolejki, ponieważ czekały zbyt długo. – Vektor88
Tak. Używanie nieograniczonej kolejki rozwiąże zarówno 1, jak i 2. Istnieje kilka opcji 'java.util.concurrent' do wyboru. –
Dzięki za wskazówki, to zdecydowanie działa. – Vektor88