Marino Faggiana 6 年之前
父节点
当前提交
48c7cc277d
共有 2 个文件被更改,包括 25 次插入6 次删除
  1. 21 5
      iOSClient/AppDelegate.m
  2. 4 1
      iOSClient/CCGlobal.h

+ 21 - 5
iOSClient/AppDelegate.m

@@ -1347,9 +1347,11 @@
   
     // ------------------------- <selector Upload> -------------------------
     
-//    while (counterUpload <= k_maxConcurrentOperationUpload ) {
-
-    if (counterUpload < k_maxConcurrentOperationUpload) {
+    while (counterUpload <= k_maxConcurrentOperationUpload) {
+        
+        if (sizeUpload > k_maxSizeOperationUpload) {
+            break;
+        }
         
         metadataForUpload = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND sessionSelector == %@ AND status == %d", _activeAccount, selectorUploadFile, k_metadataStatusWaitUpload]];
         if (metadataForUpload) {
@@ -1366,12 +1368,18 @@
             counterUpload++;
             counterNewDownloadUpload++;
             sizeUpload = sizeUpload + metadata.size;
+        } else {
+            break;
         }
     }
     
     // ------------------------- <selector Auto Upload> -------------------------
     
-    if (counterUpload < k_maxConcurrentOperationUpload) {
+    while (counterUpload <= k_maxConcurrentOperationUpload) {
+
+        if (sizeUpload > k_maxSizeOperationUpload) {
+            break;
+        }
         
         metadataForUpload = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND sessionSelector == %@ AND status == %d", _activeAccount, selectorUploadAutoUpload, k_metadataStatusWaitUpload]];
         if (metadataForUpload) {
@@ -1384,6 +1392,8 @@
             counterUpload++;
             counterNewDownloadUpload++;
             sizeUpload = sizeUpload + metadata.size;
+        } else {
+            break;
         }
     }
   
@@ -1401,7 +1411,11 @@
 
     } else {
         
-        if (counterUpload < k_maxConcurrentOperationUpload) {
+        while (counterUpload <= k_maxConcurrentOperationUpload) {
+
+            if (sizeUpload > k_maxSizeOperationUpload) {
+                break;
+            }
             
             metadataForUpload = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND sessionSelector == %@ AND status == %d", _activeAccount, selectorUploadAutoUploadAll, k_metadataStatusWaitUpload]];
             if (metadataForUpload) {
@@ -1414,6 +1428,8 @@
                 counterUpload++;
                 counterNewDownloadUpload++;
                 sizeUpload = sizeUpload + metadata.size;
+            } else {
+                break;
             }
         }
     }

+ 4 - 1
iOSClient/CCGlobal.h

@@ -166,7 +166,10 @@
 #define k_maxHTTPConnectionsPerHost                     5
 #define k_maxConcurrentOperation                        10
 #define k_maxConcurrentOperationDownload                5
-#define k_maxConcurrentOperationUpload                  1
+#define k_maxConcurrentOperationUpload                  5
+
+// Max Size Operation
+#define k_maxSizeOperationUpload                        524288000   // 500 MB
 
 // Error
 #define k_CCErrorTaskNil                                -9999