首页 > 解决方案 > 有时 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 设置是否有任何问题,仅在某些情况下会导致延迟问题,或者应用程序端需要任何东西。

标签: iosswiftamazon-web-servicesamazon-ec2aws-lambda

解决方案


这里缺少很多信息,我想我只能提供一个一般性的答案。

我看到你用“aws-lambda”标记了这个问题。如果您使用 lambdas 来支持您的 API,我建议您阅读有关冷启动的内容。

总而言之,您正在运行的 lambda 实例将每隔一段时间终止一次,这有时会导致您的“第一个”请求启动您的 lambda 的全新启动。要验证这一点,您可以查看 Cloudwatch 日志。


推荐阅读