fix: parse DATABASE_URL in pool clients + extend Ollama health timeout to 15s
Gateway and learning DB clients now prefer DATABASE_URL connection string over individual DB_* env vars — matches ecosystem.config.cjs convention. Ollama health check timeout increased 5→15s for Cloudflare tunnel latency.
This commit is contained in:
parent
4c5003f9fc
commit
773fd368e0
@ -5,18 +5,35 @@ const { Pool } = pg;
|
||||
|
||||
let pool: pg.Pool | null = null;
|
||||
|
||||
export function getPool(): pg.Pool {
|
||||
if (!pool) {
|
||||
pool = new Pool({
|
||||
/**
|
||||
* Build pool config from DATABASE_URL (preferred) or individual DB_* env vars.
|
||||
* DATABASE_URL format: postgresql://user:password@host:port/database
|
||||
*/
|
||||
function buildPoolConfig(): pg.PoolConfig {
|
||||
const databaseUrl = process.env['DATABASE_URL'];
|
||||
if (databaseUrl) {
|
||||
return {
|
||||
connectionString: databaseUrl,
|
||||
max: 10,
|
||||
idleTimeoutMillis: 30_000,
|
||||
connectionTimeoutMillis: 5_000,
|
||||
};
|
||||
}
|
||||
return {
|
||||
host: process.env['DB_HOST'] ?? 'localhost',
|
||||
port: parseInt(process.env['DB_PORT'] ?? '5432', 10),
|
||||
database: process.env['DB_NAME'] ?? 'llm_gateway',
|
||||
user: process.env['DB_USER'] ?? 'llm_gateway',
|
||||
user: process.env['DB_USER'] ?? 'llm',
|
||||
password: process.env['DB_PASSWORD'] ?? '',
|
||||
max: 10,
|
||||
idleTimeoutMillis: 30_000,
|
||||
connectionTimeoutMillis: 5_000,
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function getPool(): pg.Pool {
|
||||
if (!pool) {
|
||||
pool = new Pool(buildPoolConfig());
|
||||
|
||||
pool.on('error', (err) => {
|
||||
logger.error({ err }, 'PostgreSQL pool error');
|
||||
|
||||
@ -21,7 +21,7 @@ async function checkOllama(baseUrl: string): Promise<{ status: 'ok' | 'down'; la
|
||||
const start = Date.now();
|
||||
try {
|
||||
const response = await fetch(`${baseUrl}/api/tags`, {
|
||||
signal: AbortSignal.timeout(5000),
|
||||
signal: AbortSignal.timeout(15000),
|
||||
});
|
||||
const latency_ms = Date.now() - start;
|
||||
if (!response.ok) {
|
||||
|
||||
@ -5,9 +5,12 @@ const { Pool } = pg;
|
||||
|
||||
let pool: pg.Pool | null = null;
|
||||
|
||||
export function getPool(): pg.Pool {
|
||||
if (!pool) {
|
||||
pool = new Pool({
|
||||
function buildPoolConfig(): pg.PoolConfig {
|
||||
const databaseUrl = process.env['DATABASE_URL'];
|
||||
if (databaseUrl) {
|
||||
return { connectionString: databaseUrl, max: 5, idleTimeoutMillis: 30_000, connectionTimeoutMillis: 5_000 };
|
||||
}
|
||||
return {
|
||||
host: process.env['DB_HOST'] ?? 'localhost',
|
||||
port: parseInt(process.env['DB_PORT'] ?? '5432', 10),
|
||||
database: process.env['DB_NAME'] ?? 'llm_gateway',
|
||||
@ -16,7 +19,12 @@ export function getPool(): pg.Pool {
|
||||
max: 5,
|
||||
idleTimeoutMillis: 30_000,
|
||||
connectionTimeoutMillis: 5_000,
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function getPool(): pg.Pool {
|
||||
if (!pool) {
|
||||
pool = new Pool(buildPoolConfig());
|
||||
|
||||
pool.on('error', (err) => {
|
||||
logger.error({ err }, 'PostgreSQL pool error (learning engine)');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user