Witam, mam usługę REST której można podać URL jakiegoś zasobu i zasób ten zostanie pobrany i zapisany do bazy danych. Ponieważ jednak czasami taki zasób może być bardzo duży, chciałbym aby te pobieranie odbywało się asynchronicznie, tak żeby nie blokowało przyjmowania i obsługi żądań. Ponadto jeśli pobierany jest akurat inny zasób, to nowy zasób do pobrania czeka w jakiejś kolejce FIFO na swoją kolej.
Pomyślałem, żeby tworzyć nowe asynchroniczne wątki, które współdzieliłyby dostęp do jakiejś kolejki i zaczynały pobieranie, gdy ich url jest na początku kolejki i na koniec po pobraniu usuwały go z niej, niejako zwalniając pobieranie. Ale jakoś intuicyjnie nienajlepiej mi to wygląda, jak podczas pobierania większego zasobu narobię kupę wątków, które będą nic nie robiły tylko czekały.
Ma ktoś może sugestię jak do tego podejść? Z góry dziękuję za pomoc :)