[Android] API의 배치 처리와 동시성 처리 : chunked vs semaphore
·
작업 일지
기존 문자를 전송하는 로직은 chunked(10)를 통해 10개의 배치를 만들고 배치 내부는 비동기로 실행하되, 배치 내부의 작업이 모두 끝나면 다음 배치로 넘어가는 순차 방식으로 구현을 했다. // sendMmsFlowList: MutableList>val result = sendMmsFlowList.chunked (10).flatMap { batch -> batch.map { job -> async { job.first() } }.awaitAll()}개수를 제한하여 처리했을 때 시스템 자원이 과부하되는 것도 방지하고 서버와 통신하는 부분도 더 안전하다고 생각을 했다. 다만 Data 타입에 Flow를 담고 처리하는 부분이 전체 코드를 지저분하게 만들었고, 준비된 작업이 모두 끝..