(instance: Instance, api: string, tries = 0)
| 119 | } |
| 120 | |
| 121 | async function checkHealth(instance: Instance, api: string, tries = 0): Promise<void> { |
| 122 | try { |
| 123 | const response = await fetch(`${api}/ping`, {method: "HEAD"}); |
| 124 | console.log(`Checking health for ${instance.name}: ${response.status}`); |
| 125 | if (response.ok || tries > 3) { |
| 126 | setStatus(instance, response.ok); |
| 127 | } else { |
| 128 | retryHealthCheck(instance, api, tries); |
| 129 | } |
| 130 | } catch (error) { |
| 131 | console.error(`Error checking health for ${instance.name}:`, error); |
| 132 | if (tries > 3) { |
| 133 | setStatus(instance, false); |
| 134 | } else { |
| 135 | retryHealthCheck(instance, api, tries); |
| 136 | } |
| 137 | } |
| 138 | } |
| 139 | |
| 140 | function retryHealthCheck(instance: Instance, api: string, tries: number): void { |
| 141 | setTimeout(() => checkHealth(instance, api, tries + 1), 30000); |
no test coverage detected