feat: retry 3 times to download a repository

This commit is contained in:
tdurieux
2021-09-26 08:01:52 +02:00
parent fafeee02ec
commit dc1ff2d0b8
3 changed files with 8 additions and 5 deletions

View File

@@ -185,7 +185,7 @@ export default class Repository {
this._model.anonymizeDate = new Date();
console.log(`${this._model.repoId} will be updated to ${newCommit}`);
await this.resetSate("preparing");
await downloadQueue.add(this, { jobId: this.repoId });
await downloadQueue.add(this, { jobId: this.repoId, attempts: 3 });
}
}
}

View File

@@ -432,7 +432,10 @@ router.post("/", async (req: express.Request, res: express.Response) => {
}
res.send({ status: repo.status });
downloadQueue.add(new Repository(repo), { jobId: repo.repoId });
downloadQueue.add(new Repository(repo), {
jobId: repo.repoId,
attempts: 3,
});
} catch (error) {
if (error.message?.indexOf(" duplicate key") > -1) {
return handleError(

View File

@@ -87,11 +87,11 @@ router.get(
fiveMinuteAgo.setMinutes(fiveMinuteAgo.getMinutes() - 5);
if (repo.status != "ready") {
if (
repo.model.statusDate < fiveMinuteAgo
repo.model.statusDate < fiveMinuteAgo
// && repo.status != "preparing"
) {
await repo.updateStatus("preparing");
await downloadQueue.add(repo, { jobId: repo.repoId });
await downloadQueue.add(repo, { jobId: repo.repoId, attempts: 3 });
}
if (repo.status == "error") {
throw new AnonymousError(
@@ -121,7 +121,7 @@ router.get(
!!config.ENABLE_DOWNLOAD &&
repo.source.type == "GitHubDownload";
}
res.header("Cache-Control", "no-cache");
res.json({
url: redirectURL,