From 7917cd71260dafcd44495c874f79cd8a835e5ad7 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Wed, 15 Jan 2025 21:32:06 -0800 Subject: [PATCH 1/4] set timeout for repository data loader --- src/loaders/RepositoryDataLoader.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/loaders/RepositoryDataLoader.ts b/src/loaders/RepositoryDataLoader.ts index 132ed3d..fdefeb9 100644 --- a/src/loaders/RepositoryDataLoader.ts +++ b/src/loaders/RepositoryDataLoader.ts @@ -42,6 +42,8 @@ export class RepositoryDataLoader { } private async startFetchDataAndUpdate() { + const timeout = 60000; + if (!this.shouldBeRunning) return; try { @@ -53,9 +55,7 @@ export class RepositoryDataLoader { } catch (e) { console.error(e); } finally { - // TODO test if memoization of shouldBeRunning works as intended, - // I have no idea how JavaScript works - // setTimeout(this.startFetchDataAndUpdate, timeout); + setTimeout(this.startFetchDataAndUpdate, timeout); } } From 9ad275a6620aeab77a1a84bdc56e20e91a838dca Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Wed, 15 Jan 2025 21:37:54 -0800 Subject: [PATCH 2/4] use global timeout variable instead of local one --- src/loaders/RepositoryDataLoader.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/loaders/RepositoryDataLoader.ts b/src/loaders/RepositoryDataLoader.ts index fdefeb9..42b245d 100644 --- a/src/loaders/RepositoryDataLoader.ts +++ b/src/loaders/RepositoryDataLoader.ts @@ -1,7 +1,7 @@ import { GetterSetterRepository } from "../repositories/GetterSetterRepository"; import { IRoute, IShuttle, IStop, ISystem } from "../entities/entities"; -const timeout = 10000; +const timeout = 60000; const systemIdsToSupport = ["263"]; const baseUrl = "https://passiogo.com/mapGetData.php"; @@ -42,8 +42,6 @@ export class RepositoryDataLoader { } private async startFetchDataAndUpdate() { - const timeout = 60000; - if (!this.shouldBeRunning) return; try { @@ -55,7 +53,7 @@ export class RepositoryDataLoader { } catch (e) { console.error(e); } finally { - setTimeout(this.startFetchDataAndUpdate, timeout); + setTimeout(this.startFetchDataAndUpdate, timeout); } } From 5289e60d050830a3e66a44746545f07ceaa50144 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Wed, 15 Jan 2025 21:42:33 -0800 Subject: [PATCH 3/4] add binding of function and timer --- src/loaders/RepositoryDataLoader.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/loaders/RepositoryDataLoader.ts b/src/loaders/RepositoryDataLoader.ts index 42b245d..05b58ba 100644 --- a/src/loaders/RepositoryDataLoader.ts +++ b/src/loaders/RepositoryDataLoader.ts @@ -22,10 +22,13 @@ const baseUrl = "https://passiogo.com/mapGetData.php"; export class RepositoryDataLoader { private shouldBeRunning: boolean = false; + private timer: any; constructor( private repository: GetterSetterRepository, - ) {} + ) { + this.startFetchDataAndUpdate = this.startFetchDataAndUpdate.bind(this); + } public async start() { if (this.shouldBeRunning) { @@ -52,9 +55,9 @@ export class RepositoryDataLoader { await this.fetchAndUpdateEtaDataForExistingOrderedStops(); } catch (e) { console.error(e); - } finally { - setTimeout(this.startFetchDataAndUpdate, timeout); } + + this.timer = setTimeout(this.startFetchDataAndUpdate, timeout); } private async fetchAndUpdateSystemData() { From 4c65f5d26e39e46f825d9cabc591ecbac5db2002 Mon Sep 17 00:00:00 2001 From: Brendan Chen Date: Wed, 15 Jan 2025 21:51:18 -0800 Subject: [PATCH 4/4] change timeout to 10 secs --- src/loaders/RepositoryDataLoader.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/loaders/RepositoryDataLoader.ts b/src/loaders/RepositoryDataLoader.ts index 05b58ba..c4996f1 100644 --- a/src/loaders/RepositoryDataLoader.ts +++ b/src/loaders/RepositoryDataLoader.ts @@ -1,7 +1,7 @@ import { GetterSetterRepository } from "../repositories/GetterSetterRepository"; import { IRoute, IShuttle, IStop, ISystem } from "../entities/entities"; -const timeout = 60000; +const timeout = 10000; const systemIdsToSupport = ["263"]; const baseUrl = "https://passiogo.com/mapGetData.php";