30 lines
803 B
TypeScript
30 lines
803 B
TypeScript
import dotenv from 'dotenv';
|
|
import pg from 'pg';
|
|
|
|
dotenv.config();
|
|
|
|
const { Pool } = pg;
|
|
|
|
const heatmapPool = new Pool({
|
|
host: process.env.HEATMAP_DB_HOST,
|
|
port: Number(process.env.HEATMAP_DB_PORT) || 5432,
|
|
user: process.env.HEATMAP_DB_USER,
|
|
password: process.env.HEATMAP_DB_PASSWORD,
|
|
database: process.env.HEATMAP_DB_NAME,
|
|
ssl: process.env.HEATMAP_DB_SSL === 'true'
|
|
? { rejectUnauthorized: false }
|
|
: false,
|
|
max: 5,
|
|
idleTimeoutMillis: 30_000,
|
|
connectionTimeoutMillis: 10_000,
|
|
statement_timeout: 30_000,
|
|
application_name: 'ln-bi-vehicle-heatmap',
|
|
options: '-c timezone=Asia/Shanghai -c default_transaction_read_only=on',
|
|
});
|
|
|
|
heatmapPool.on('error', (error) => {
|
|
console.error('[vehicle-heatmap] idle PostgreSQL client error:', error);
|
|
});
|
|
|
|
export default heatmapPool;
|