ios – 在AFNetworking 2中运行AFHTTPSessionManager的并发任务的设置限制

ios – 在AFNetworking 2中运行AFHTTPSessionManager的并发任务的设置限制,第1张

概述所以我知道在旧的AFNetworking这可能使用AFHTTPClient, 我知道如果我使用AFHTTPRequestOperationManager,我可以设置队列的限制,但是我不能使AFHTTPSessionManager一次只运行x个请求,而不用自己使用成功块(我不想)实现它. 以下代码没有限制我的连接: AFHTTPSessionManager *manager = [AFHTTPSes 所以我知道在旧的AFNetworking这可能使用AFhttpClIEnt,
我知道如果我使用AFhttpRequestoperationManager,我可以设置队列的限制,但是我不能使AFhttpSessionManager一次只运行x个请求,而不用自己使用成功块(我不想)实现它.

以下代码没有限制我的连接:

AFhttpSessionManager *manager = [AFhttpSessionManager manager];
manager.operationQueue.maxConcurrentoperationCount = 1;

根据一个有趣的讨论here,我有很多的请求到我的服务器,我扼杀它,直到我超时,所以我真的需要限制我的并发连接.

我失踪了什么

解决方法 AFhttpSessionManager使用任务而不是 *** 作(特别是NSURLSessionDataTask),这就是为什么你不能设置一个 *** 作队列.

正如the implementation of this class中所示,任务立即启动([任务恢复]),不会添加到任何队列中.

因此,不幸的是,没有内置的AFNetworking方式来设置使用AFhttpSessionManager的并发任务数量的限制.

可能的选择:

>使用AFhttpRequestoperationManager(这是我在做什么)
>构建一个具有任务作为属性的NSOperation子类,并在您的子类的[operation start]方法中启动任务
>创建一个Grand Central串行队列,并创建并启动此队列中的任务
>如果您的请求都是同一个主机,请直接访问基础URL加载系统中的httpMaximumConnectionsPerHost选项,如下所示:

[NSURLSessionConfiguration defaultSessionConfiguration].httpMaximumConnectionsPerHost = 4;

这种方法有许多注意事项,这些注意事项将在the Apple documentation年进行讨论.

如果你结束#2,请提交它作为AFNetworking的拉动请求 – 这将是一个受欢迎的补充.

总结

以上是内存溢出为你收集整理的ios – 在AFNetworking 2中运行AFHTTPSessionManager的并发任务的设置限制全部内容,希望文章能够帮你解决ios – 在AFNetworking 2中运行AFHTTPSessionManager的并发任务的设置限制所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1113460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存