2011-08-18 67 views
2

我刚开始测试一些上传工具我已经建成并投入47项上传,但队列在第15或18或21项随机停止,不知道确切原因,但选择被称为太早而并非所有请求都已结束。ASINetworkQueue setQueueDidFinishSelector选择提前结束?

我唯一特别的事情就是将最大并发请求提高到6而不是4,但是 似乎并不是一个大问题。

我配置我选择如下:

[self.uploadQueue setDelegate: self]; 
[self.uploadQueue cancelAllOperations]; 
[self.uploadQueue setRequestDidStartSelector: @selector(uploadRequestStarted:)]; 
[self.uploadQueue setRequestDidFinishSelector:@selector(uploadRequestEnded:)]; 
[self.uploadQueue setQueueDidFinishSelector:@selector(uploadQueueEnded:)]; 
[self.uploadQueue setDownloadProgressDelegate: myProgress]; 
[self.uploadQueue showAccurateProgress]; 

这是我的日志:

2011-08-18 12:39:03.916 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView startUpload] Num requests: 47 
2011-08-18 12:39:08.987 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #3 successfully! 
2011-08-18 12:39:09.036 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #2 successfully! 
2011-08-18 12:39:09.911 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #0 successfully! 
2011-08-18 12:39:09.913 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #5 successfully! 
2011-08-18 12:39:10.011 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #4 successfully! 
2011-08-18 12:39:12.691 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #6 successfully! 
2011-08-18 12:39:13.588 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #9 successfully! 
2011-08-18 12:39:14.205 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #8 successfully! 
2011-08-18 12:39:14.229 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #10 successfully! 
2011-08-18 12:39:15.739 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #11 successfully! 
2011-08-18 12:39:17.278 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #12 successfully! 
2011-08-18 12:39:17.894 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #13 successfully! 
2011-08-18 12:39:18.815 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #15 successfully! 
2011-08-18 12:39:18.986 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadRequestEnded:] Finished uploading photo #14 successfully! 
2011-08-18 12:39:19.191 MyTestApp[4240/0xacc992c0] [lvl=2] -[MyView uploadQueueEnded:] queue ended? 

很想听听你们任何建议:) 在此先感谢, 夏嘉曦。

回答

3

你试过设置setShouldCancelAllRequestsOnFailure:NO?如果任何单个请求失败,则队列的默认行为是取消所有剩余的请求。

这可能是一个请求失败(由于某种原因)这是导致你排队过早完成。

+2

是的,我正要张贴此。同时添加一个requestFailed选择器和一些调试,这样你就可以知道/为什么事情会失败! – JosephH

+0

嘿,谢谢,这确实解决了它!我得到的是 错误域= ASIHTTPRequestErrorDomain代码= 2“请求超时”UserInfo = 0x60ed4a0 {NSLocalizedDescription =请求超时} 在哪里设置超时时间? ......为了以防万一,我应该再延长一点时间? –

+0

通过设置解决了[请求setNumberOfTimesToRetryOnTimeout:2]; 非常感谢! :) –