INNER CODE UNIT · TypeScript
deadline
PerryTS/perry · example-code/forgejo-deployment/main.ts:119
const deadline = Date.now() + timeoutMs;
let attempt = 0;
while (Date.now() < deadline) {
attempt++;
try {
await exec(stack, 'db', [
'pg_isready', '-U', 'forgejo', '-d', 'forgejo', '-h', 'localhost',
]);
return true;
} catch (_e) {
// pg_isready exits non-zero while server initialises; retry every 1s.
await new Promise((r) => setTimeout(r, 1000));
}
}
console.error(` pg_isready never succeeded after ${attempt} attempts`);
return false;
}