我知道如果我使用AFHTTPRequestOperationManager,我可以设置队列的限制,但是我不能使AFHTTPSessionManager一次只运行x个请求,而不用自己使用成功块(我不想)实现它.
以下代码没有限制我的连接:
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.operationQueue.maxConcurrentOperationCount = 1;
根据一个有趣的讨论here,我有很多的请求到我的服务器,我扼杀它,直到我超时,所以我真的需要限制我的并发连接.
我失踪了什么
解决方法
正如the implementation of this class中所示,任务立即启动([任务恢复]),不会添加到任何队列中.
因此,不幸的是,没有内置的AFNetworking方式来设置使用AFHTTPSessionManager的并发任务数量的限制.
可能的选择:
>使用AFHTTPRequestOperationManager(这是我在做什么)
>构建一个具有任务作为属性的NSOperation子类,并在您的子类的[operation start]方法中启动任务
>创建一个Grand Central串行队列,并创建并启动此队列中的任务
>如果您的请求都是同一个主机,请直接访问基础URL加载系统中的HTTPMaximumConnectionsPerHost选项,如下所示:
[NSURLSessionConfiguration defaultSessionConfiguration].HTTPMaximumConnectionsPerHost = 4;
这种方法有许多注意事项,这些注意事项将在the Apple documentation年进行讨论.
如果你结束#2,请提交它作为AFNetworking的拉动请求 – 这将是一个受欢迎的补充.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。