Selaa lähdekoodia

refactor batching on trashFilesOnServer()

ashilkn 2 vuotta sitten
vanhempi
commit
ce9c44e581
1 muutettua tiedostoa jossa 7 lisäystä ja 11 poistoa
  1. 7 11
      lib/services/trash_sync_service.dart

+ 7 - 11
lib/services/trash_sync_service.dart

@@ -10,6 +10,7 @@ import 'package:photos/db/trash_db.dart';
 import 'package:photos/events/collection_updated_event.dart';
 import 'package:photos/events/force_reload_trash_page_event.dart';
 import 'package:photos/events/trash_updated_event.dart';
+import 'package:photos/extensions/list.dart';
 import 'package:photos/models/file.dart';
 import 'package:photos/models/ignored_file.dart';
 import 'package:photos/models/trash_file.dart';
@@ -113,20 +114,15 @@ class TrashSyncService {
         includedFileIDs.add(item.fileID);
       }
     }
-    int currentBatchSize = 0;
     final requestData = <String, dynamic>{};
     requestData["items"] = [];
-    for (final item in uniqueItems) {
-      currentBatchSize++;
-      requestData["items"].add(item.toJson());
-      if (currentBatchSize >= kTrashBatchSize) {
-        await _trashFiles(requestData);
-        requestData["items"] = [];
-        currentBatchSize = 0;
+    final batchedItems = uniqueItems.chunks(1000);
+    for (final batch in batchedItems) {
+      for (final item in batch) {
+        requestData["items"].add(item.toJson());
       }
-    }
-    if (currentBatchSize > 0) {
-      return await _trashFiles(requestData);
+      await _trashFiles(requestData);
+      requestData["items"] = [];
     }
   }