场景1: postgres服务未运行。节点启动。rest调用超时=>没有问题
场景2: postgres服务未运行。节点启动。邮政服务启动。rest调用工作=>没有问题
场景3: postgres服务未运行。节点启动。邮政服务启动。休息呼唤工作。postgres服务停止=>节点崩溃。
当发生这种情况时,堆栈跟踪如下所示:
错误:由于管理员命令在(...\express.js\node_modules\pg\lib\connection.js:553:11)的Connection.parseE、Connection.parseMessage、Connection.parseMessage、Socket上终止连接。(...\express.js\node_modules\pg\lib\connection.js:119:22) at emitOne (events.js:116:13) at Socket.emit (events.js:211:7) at addChunk (_stream_readable.js:263:12) at readableAddChunk (_stream_readable.js:250:11) at Socket.Readable.push (_stream_readable.js:208:10) at TCP.onread (net.js:594:20)
我使用Postgres的配置如下:
const pool = new Pool({
user: 'postgres',
host: 'localhost',
database: 'sampleDB',
password: 'password',
port: 5432,
max: 1,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
})
如何处理这种情况,使节点不会崩溃,然后返回到场景-1,然后移动到场景-2?
发布于 2018-08-14 21:33:29
在阅读了节点-postgres(链接)的文档之后,我想出了一种捕获错误和避免节点崩溃的方法。
pool.on('error', (err, client) => {
console.log('postgres connection error : ' + err)
})
添加上述代码将允许节点处理错误而不是崩溃。
https://stackoverflow.com/questions/51821082
复制相似问题