是否可以使用 Alamofire 创建多个单独的操作队列(或类似的东西)?

Posted

技术标签:

【中文标题】是否可以使用 Alamofire 创建多个单独的操作队列(或类似的东西)?【英文标题】:Is it possible to make multiple separate operations queues (or something similar) with Alamofire? 【发布时间】:2014-09-30 18:04:11 【问题描述】:

所以我需要进行大约 300 次以上的 get api 调用,并且我不想一次将它们全部传递给服务器并给服务器带来压力。所以我在考虑一次做大约 5 个异步调用。 从我读到的here operation queues 听起来很棒并且非常有用。从这个question 的答案中,异步示例创建了一个操作队列并将其传递给调用。我假设如果我做了这样的事情,我可以制作 5 个单独的队列并将我的呼叫集中到这 5 个队列中(我假设,因为我想使用 Alamofire,所以实际上没有尝试过)。 Alamofire 是否有类似的可能?

【问题讨论】:

【参考方案1】:

网络请求由底层 URL 加载系统自动管理,因此 Alamofire 应该能够处理您向其发送的任何内容。有一些方法可以在队列上安排 Alamofire 请求,但这不是必需的。总是更好地尝试和衡量结果而不是推测。

【讨论】:

所以你的意思是,如果我尝试让 300 次获取大约在同一时间,那么底层 URL 加载系统将确保它不会淹没服务器? 所有 URL 加载系统可以确保 客户端 不会咬太多。至于服务器,300 个并发请求处理的数量并不是特别多。 是的,我想我没有解释。所以它是每台设备 300+ 而不是总共 300+ (实际上现在我认为我当前的代码接近 600)。因此,对于很多设备和无法处理大量流量的服务器,这对我来说将是一个问题。我并不真正担心客户端。 不,我明白这一点。如果您的服务器确实无法处理实际负载,我建议您花时间重构事物以组合并减少调用次数。

以上是关于是否可以使用 Alamofire 创建多个单独的操作队列(或类似的东西)?的主要内容,如果未能解决你的问题,请参考以下文章

针对多个 CA 的 Alamofire 5 自定义 SSL 验证

kafka是否为每个消费者创建一个单独的连接?

多个网站的多个 Alamofire 请求的正确模型

在 Alamofire 中,等待一组调用完成的正确方法是啥?

如何在 Swift 4 中通过 SwiftyJson 和 Alamofire 创建多个按钮?

Alamofire 用于 CRUD 的单独类