feat: remove cache of old repositories

This commit is contained in:
tdurieux
2022-10-24 15:12:18 +02:00
parent 2751d300e2
commit 6cab4365b0
3 changed files with 23 additions and 4 deletions

View File

@@ -253,10 +253,15 @@ export default class Repository {
this._model.size = { storage: 0, file: 0 };
this._model.originalFiles = null;
// remove cache
return Promise.all([
this._model.save(),
storage.rm(this._model.repoId + "/"),
]);
return Promise.all([this._model.save(), this.removeCache()]);
}
/**
* Remove the cached files
* @returns
*/
async removeCache() {
return storage.rm(this._model.repoId + "/");
}
/**

View File

@@ -25,6 +25,7 @@ export function conferenceStatusCheck() {
export function repositoryStatusCheck() {
// check every 6 hours the status of the repositories
const job = schedule.scheduleJob("0 */6 * * *", async () => {
console.log("[schedule] Check repository status and unused repositories");
(
await AnonymizedRepositoryModel.find({ status: { $eq: "ready" } })
).forEach((data) => {
@@ -34,6 +35,16 @@ export function repositoryStatusCheck() {
} catch (error) {
console.log(`Repository ${repo.repoId} is expired`);
}
const sixMonthAgo = new Date();
sixMonthAgo.setMonth(sixMonthAgo.getMonth() - 6);
if (repo.model.lastView < sixMonthAgo) {
repo.removeCache().then(() => {
console.log(
`Repository ${repo.repoId} not visited for 6 months remove the cached files`
);
});
}
});
});
}

View File

@@ -114,6 +114,9 @@ export default class GitHubDownload extends GitHubBase implements SourceBase {
}
async getFileContent(file: AnonymizedFile): Promise<Readable> {
if (await storage.exists(file.originalCachePath)) {
return storage.read(file.originalCachePath);
}
await this.download();
// update the file list
await this.repository.files({ force: true });