주어진 사용 사례에 적절한 구조를 찾는 데 문제가 있습니다.N 요청이 완료 될 때까지 X 요청을 병렬로 실행합니다.
주어진 입력 문자열에 대해 Single<String>
을 생성하는 기능이 있습니다. 이 Single
은 최대 30 분이 소요될 것으로 예상되는 여러 작업의 조합이지만이 질문과 관련이 없다고 생각합니다.
내가 달성하고자하는 동작은 5 개의 작업을 N 개의 작업을 완료하는 목표와 동시에 활성화하는 것입니다. 작업은 시간이 많이 걸릴뿐만 아니라 비싸기 때문에 이후에 폐기 될 초과 작업을 시작해서는 안됩니다. 어떻게 든이 작업의 결과를 병합하는 것은 중요하지 않습니다. 단순히 각 결과를 onSuccess
에 보관합니다.
그래서 기본적으로 내 계획은 카운터와 onTerminate
을 증가 onComplete
, 그들에게 구독 (5)에 의해 카운터를 증가, 루프, 그리고 0에서 시작하는 카운터 변수가 5 Single
을 생성하는 것입니다 counter
< N 경우, 다른 Single
을 시작하십시오.
그러나 결국에는 재귀 적으로 생성 된 Single
개체를 추적하는 좋은 방법이 없지만 N 완료 될 때까지 기다려야합니다.
이렇게 쉽게 만들 수있는 구조가 있습니까? 아니면 카운터 또는 Disposable
의 목록을 사용하여이 작업을 수행해야합니까?