Мы делаем запросы с помощью RxAlamofire со следующим кодом
self.scheduler = ConcurrentDispatchQueueScheduler(qos: .userInitiated)
func postRequest(_ path: String, parameters: [String: Any]?) -> Observable<T> {
let absolutePath = "\(endPoint)\(path)"
return RxAlamofire
.json(.post, absolutePath, parameters: parameters, encoding: JSONEncoding.default)
.debug()
.subscribeOn(scheduler)
.retry(2)
.observeOn(scheduler)
.map({ json -> T in
return try Mapper<T>().map(JSONObject: json)
})
}
, и мы видим что-то очень странное между временем подписки и временем выпуска, например:
2020-05-26 17:46:41.020: Network.swift:213 (postRequest(_:parameters:)) -> subscribed
2020-05-26 17:47:01.535: Network.swift:213 (postRequest(_:parameters:)) -> Event next({
Мы отказались от проблемы с сервером, потому что у нас есть приложение Android, использующее те же веб-службы, и запросы не задерживаются. Мы также безуспешно использовали разные планировщики. Загрузка ЦП в этот период составляет 0%.