44 lines
1.1 KiB
Objective-C
44 lines
1.1 KiB
Objective-C
//
|
|
// QNConcurrentResumeUpload.m
|
|
// QiniuSDK
|
|
//
|
|
// Created by WorkSpace_Sun on 2019/7/15.
|
|
// Copyright © 2019 Qiniu. All rights reserved.
|
|
//
|
|
|
|
#import "QNLogUtil.h"
|
|
#import "QNConcurrentResumeUpload.h"
|
|
|
|
@interface QNConcurrentResumeUpload()
|
|
|
|
@property(nonatomic, strong) dispatch_group_t uploadGroup;
|
|
@property(nonatomic, strong) dispatch_queue_t uploadQueue;
|
|
|
|
@end
|
|
|
|
@implementation QNConcurrentResumeUpload
|
|
|
|
- (int)prepareToUpload{
|
|
self.uploadGroup = dispatch_group_create();
|
|
self.uploadQueue = dispatch_queue_create("com.qiniu.concurrentUpload", DISPATCH_QUEUE_SERIAL);
|
|
return [super prepareToUpload];
|
|
}
|
|
|
|
- (void)uploadRestData:(dispatch_block_t)completeHandler {
|
|
QNLogInfo(@"key:%@ 并发分片", self.key);
|
|
|
|
for (int i = 0; i < self.config.concurrentTaskCount; i++) {
|
|
dispatch_group_enter(self.uploadGroup);
|
|
dispatch_group_async(self.uploadGroup, self.uploadQueue, ^{
|
|
[super performUploadRestData:^{
|
|
dispatch_group_leave(self.uploadGroup);
|
|
}];
|
|
});
|
|
}
|
|
dispatch_group_notify(self.uploadGroup, self.uploadQueue, ^{
|
|
completeHandler();
|
|
});
|
|
}
|
|
|
|
@end
|