ios - 有时 API 请求需要比平时更多的时间
问题描述
我在 AWS 上托管了 API,并且我在我的 iOS 应用程序中编写了以下代码,以使用这些 API 请求数据。现在需要 7 - 10 秒才能得到响应,有时需要 1 - 2 秒。
let request = NSMutableURLRequest(url: url,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 30)
request.httpMethod = methodName
request.allHTTPHeaderFields = (isAuthHeaderRequired ? headers as? [String : String] : nil)
if let dictParam = parameters, JSONSerialization.isValidJSONObject(dictParam) {
let postData: Data? = try? JSONSerialization.data(withJSONObject: dictParam, options: [])
let strParam = String(data: postData ?? Data(), encoding: .utf8)
request.httpBody = postData
}
else {
print("Parameters : No Input Parameters")
}
let session = URLSession.shared
dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
// Handle response and proceed further
})
dataTask.resume()
我还验证了不存在令牌过期问题。
我想弄清楚 AWS 设置是否有任何问题,仅在某些情况下会导致延迟问题,或者应用程序端需要任何东西。
解决方案
这里缺少很多信息,我想我只能提供一个一般性的答案。
我看到你用“aws-lambda”标记了这个问题。如果您使用 lambdas 来支持您的 API,我建议您阅读有关冷启动的内容。
总而言之,您正在运行的 lambda 实例将每隔一段时间终止一次,这有时会导致您的“第一个”请求启动您的 lambda 的全新启动。要验证这一点,您可以查看 Cloudwatch 日志。
推荐阅读
- php - 如何动态使用类名
- shake-build-system - 假设某些规则是最新的,有没有办法运行抖动?
- ruby-on-rails - 为什么我在 Spree::UserSessionsController#new 安装 spree 时会出现 SyntaxError?
- python - 如何在 Python 中可视化空间农艺数据?
- android - Android解密WRONG_FINAL_BLOCK_LENGTH(用Python加密的文件)
- swift - WKInterfaceTable 中的 WKLongPressGestureRecognizer
- amazon-web-services - 从其他用户访问 SNS 主题
- google-apps-script - 高级日历服务不发送电子邮件邀请
- android - Xamarin Android 通知仅工作一次
- sql - 有没有办法创建一个接受两个字符串数组并将这些字符串作为两个参数传递给函数的 UDF?