mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-17 09:36:08 +08:00
core: auto-clean unused files
This commit is contained in:
1 parent
99adcc6d7d
commit
388733b4d0
2 files changed
+16
-3
No files matched your search
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hydrooj",
|
||||
"version": "2.26.1",
|
||||
"version": "2.26.2",
|
||||
"bin": "bin/hydrooj.js",
|
||||
"main": "dist/loader.js",
|
||||
"typings": "dist/loader.d.ts",
|
||||
|
||||
@@ -19,7 +19,7 @@ export class StorageModel {
|
||||
const { metaData, size, etag } = await storage.getMeta(current._id);
|
||||
await StorageModel.coll.updateOne({ path }, {
|
||||
$set: {
|
||||
meta: metaData, size, etag, lastModified: new Date(),
|
||||
meta: metaData, size, etag, lastModified: new Date(), autoDelete: null,
|
||||
},
|
||||
});
|
||||
return path;
|
||||
@@ -76,7 +76,20 @@ export class StorageModel {
|
||||
}
|
||||
}
|
||||
|
||||
bus.on('app/started', () => StorageModel.coll.createIndex({ path: 1 }, { unique: true }));
|
||||
async function clean() {
|
||||
let res = await StorageModel.coll.findOneAndDelete({ autoDelete: { $lte: new Date() } });
|
||||
while (res.value) {
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
// await storage.del(res.value._id);
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
res = await StorageModel.coll.findOneAndDelete({ autoDelete: { $lte: new Date() } });
|
||||
}
|
||||
setTimeout(clean, 10000);
|
||||
}
|
||||
bus.on('app/started', () => {
|
||||
clean();
|
||||
return StorageModel.coll.createIndex({ path: 1 }, { unique: true });
|
||||
});
|
||||
|
||||
global.Hydro.model.storage = StorageModel;
|
||||
export default StorageModel;
|
||||
Reference in new issue
Block a user