У меня есть 100 фотографий для загрузки, и каждый раз загружаю одну фотографию.Я использую OperationQueue, чтобы установить maxConcurrentOperationCount равным 5.
let queue:OperationQueue = OperationQueue()
queue.maxConcurrentOperationCount = 5
let operation:BlockOperation = BlockOperation(block: {
[weak self] in
guard let strongSelf = self else {return}
strongSelf.uploadImage(image)
return
})
queue.addOperation(operation)
, а затем использую rxmoya для загрузки изображения.Я установил тайм-аут на 10 секунд, и предположим, что для каждого изображения требуется 1 секунда.
func uploadImage(_ image: UIImage) {
AladdinProvider.rx.request(.upload(access_token: UserInfo.instance.access_token!, file_name:
"file_name", data: image)).asObservable().mapJSON().mapObject(type:
AlbumDatas.self).subscribe(onNext: {
print("success")
}, onError: {
print("error")
}).disposed(by: disposeBag)
}
Я понимаю, что при успешной загрузке каждого изображения оно никогда не прекратится.Потому что для загрузки каждого img нужно всего 1 сек.Но дело в том, что когда я загружаю больше 10 imgs, он вызывает onError, и ошибка показывает время ожидания. Каждый запрос на загрузку является независимым, почему они рассчитывают время ожидания для всех запросов?Большое спасибо!