INNER CODE UNIT · TypeScript

waitForPostgres

PerryTS/perry · example-code/forgejo-deployment/main.ts:118

async function waitForPostgres(stack: number, timeoutMs: number): Promise<boolean> {
  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;
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…