Selaa lähdekoodia

Поправлен баг

Book Pauk 6 vuotta sitten
vanhempi
commit
f9fd0dc2c3
1 muutettua tiedostoa jossa 24 lisäystä ja 22 poistoa
  1. 24 22
      server/core/ReaderWorker.js

+ 24 - 22
server/core/ReaderWorker.js

@@ -131,32 +131,34 @@ class ReaderWorker {
         return `file://${hash}`;
     }
 
-    async periodicCleanDir(dir, maxSize, timeout) {        
-        const list = await fs.readdir(dir);
-
-        let size = 0;
-        let files = [];
-        for (const name of list) {
-            const stat = await fs.stat(`${dir}/${name}`);
-            if (!stat.isDirectory()) {
-                size += stat.size;
-                files.push({name, stat});
+    async periodicCleanDir(dir, maxSize, timeout) {
+        try {
+            const list = await fs.readdir(dir);
+
+            let size = 0;
+            let files = [];
+            for (const name of list) {
+                const stat = await fs.stat(`${dir}/${name}`);
+                if (!stat.isDirectory()) {
+                    size += stat.size;
+                    files.push({name, stat});
+                }
             }
-        }
 
-        files.sort((a, b) => a.stat.mtimeMs - b.stat.mtimeMs);
+            files.sort((a, b) => a.stat.mtimeMs - b.stat.mtimeMs);
 
-        let i = 0;
-        while (i < files.length && size > maxSize) {
-            const file = files[i];
-            await fs.remove(`${dir}/${file.name}`);
-            size -= file.stat.size;
-            i++;
+            let i = 0;
+            while (i < files.length && size > maxSize) {
+                const file = files[i];
+                await fs.remove(`${dir}/${file.name}`);
+                size -= file.stat.size;
+                i++;
+            }
+        } finally {
+            setTimeout(() => {
+                this.periodicCleanDir(dir, maxSize, timeout);
+            }, timeout);
         }
-
-        setTimeout(() => {
-            this.periodicCleanDir(dir, maxSize, timeout);
-        }, timeout);
     }
 }