前提・実現したいこと
Swiftでアプリ開発をしています
やりたいことは大量のAPIリクエストを非同期で実行し、それぞれ結果を保存したいです
通信のライブラリにはAlamofireを使用しています
発生している問題・エラーメッセージ
通信までは非同期で行われていることを確認しています
確認方法としてはリクエスト前とレスポンス時でそれぞれデバッグ出力して
リクエスト前の出力が連続した後にレスポンス時の出力が出ていることで行っています
ただこの時レスポンスまでの時間を計測していると
各APIの処理時間がどんどんと増えていっていて
パッと見た感じリクエストが前のAPIのレスポンスを待ってから行われているように感じます
現在のイメージとしては以下のような感じです
リクエスト1 Request ----> OK
リクエスト2 ---------------> Request ----> OK
リクエスト3 --------------------------------> Request ----> OK
理想のイメージは以下のような感じです
リクエスト1 Request ----> OK
リクエスト2 Request ----> OK
リクエスト3 Request ----> OK
厳密には各リクエストの開始はforなどの関係で少しずつ遅れますが
リクエストしたらすぐサーバーへ送信され結果が返ってくるのが理想です
swift? iOS?の仕様などでプログラム的には非同期でリクエストをかけているが
実際にサーバーに送信されるタイミングはレスポンスを待って行われているなどあるでしょうか?
該当のソースコード
確認しているコードは以下のような感じです
let start = Date()
print("------param------")
print(param)
secureSession!.request(url, method: .get, parameters: (param as! [String: String]), encoder: URLEncodedFormParameterEncoder.default , headers: headers, requestModifier: { $0.timeoutInterval = REQUEST_TIMEOUT })
.responseJSON { response in
print("------response------")
print(response)
print("------time------")
let elapsed = Date().timeIntervalSince(start)
print(elapsed)
}
試したこと
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー