Adding a retry to warmup

This commit is contained in:
Collin Duncan 2025-01-14 10:54:55 +01:00
parent 791b270213
commit c6429c6d3d
No known key found for this signature in database

View file

@ -402,7 +402,7 @@ export class BaanReserverenService {
await this.page await this.page
.goto(`${BAAN_RESERVEREN_ROOT_URL}/${BaanReserverenUrls.Reservations}`) .goto(`${BAAN_RESERVEREN_ROOT_URL}/${BaanReserverenUrls.Reservations}`)
.catch((e) => { .catch((e) => {
throw new RunnerWaitingListNavigationError(e) throw new RunningReservationsNavigationError(e)
}) })
await this.page.waitForNetworkIdle() await this.page.waitForNetworkIdle()
} }
@ -660,6 +660,7 @@ export class BaanReserverenService {
const classList = Object.values(classListObj) const classList = Object.values(classListObj)
const rClass = classList.filter((cl) => /r-\d{2}/.test(cl))[0] const rClass = classList.filter((cl) => /r-\d{2}/.test(cl))[0]
const courtNumber = const courtNumber =
// @ts-expect-error Can be null
`${CourtSlotToNumber[rClass.replace(/r-/, '') as CourtSlot]}` ?? `${CourtSlotToNumber[rClass.replace(/r-/, '') as CourtSlot]}` ??
'unknown court' 'unknown court'
const startTime = await court const startTime = await court
@ -809,7 +810,21 @@ export class BaanReserverenService {
} }
public async warmup() { public async warmup() {
const attempts = 10
const delay = 1000
let currentAttempt = 1
while (currentAttempt < attempts) {
try {
currentAttempt++
await this.init() await this.init()
} catch (err: unknown) {
if (err instanceof RunningReservationsNavigationError) {
await new Promise((res) => setTimeout(res, delay))
} else {
throw err
}
}
}
} }
} }
@ -885,6 +900,12 @@ export class RunnerNavigationSelectionError extends RunnerError {
} }
} }
export class RunningReservationsNavigationError extends RunnerError {
constructor(error: Error) {
super(error, 'RunnerReservationsNavigationError')
}
}
export class RunnerWaitingListNavigationError extends RunnerError { export class RunnerWaitingListNavigationError extends RunnerError {
constructor(error: Error) { constructor(error: Error) {
super(error, 'RunnerWaitingListNavigationError') super(error, 'RunnerWaitingListNavigationError')