Поправлен баг
This commit is contained in:
@@ -132,31 +132,33 @@ class ReaderWorker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async periodicCleanDir(dir, maxSize, timeout) {
|
async periodicCleanDir(dir, maxSize, timeout) {
|
||||||
const list = await fs.readdir(dir);
|
try {
|
||||||
|
const list = await fs.readdir(dir);
|
||||||
|
|
||||||
let size = 0;
|
let size = 0;
|
||||||
let files = [];
|
let files = [];
|
||||||
for (const name of list) {
|
for (const name of list) {
|
||||||
const stat = await fs.stat(`${dir}/${name}`);
|
const stat = await fs.stat(`${dir}/${name}`);
|
||||||
if (!stat.isDirectory()) {
|
if (!stat.isDirectory()) {
|
||||||
size += stat.size;
|
size += stat.size;
|
||||||
files.push({name, stat});
|
files.push({name, stat});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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++;
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.periodicCleanDir(dir, maxSize, timeout);
|
||||||
|
}, timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
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++;
|
|
||||||
}
|
|
||||||
|
|
||||||
setTimeout(() => {
|
|
||||||
this.periodicCleanDir(dir, maxSize, timeout);
|
|
||||||
}, timeout);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user