postgres nodejs连接重置

时间:2019-07-08 10:30:12

标签: javascript node.js postgresql npm pg

我正在使用pg包在我的nodejs应用程序中处理dp交互。

目标是通过chokidar包观看在文件夹中添加/删除图像文件,并在需要调整大小后将添加/删除的图像文件映射到db表中。

我最初注意到的是chokidar在触发添加到文件夹中的新文件的回调时有很大的延迟,这可能是由于> 100k的大量文件

无论如何,它会同时触发多个事件,从而导致连接重置。我应该认为这是由于处理pg中连接池的方法不正确所致。这是代码:

const gm = require('gm').subClass({ imageMagick: true });
const chokidar = require('chokidar');
const pg = require('pg');

const pool = new pg.Pool({ 
    connectionString: connectionString,
    keepAlive : true });

watcher.on('add', file => {
console.log("File added: " + file)
pool.query(buildQueryStringInsert([file]))
    .then(res => console.log("Query executed: "))
    .catch(e => console.error(e.stack));

gm(file)
    .size(function (err, size) {
        if (size.width > resizeDim.width) {
            resizeImage(file, file.insert(imageSuffix, file.lastIndexOf(".")))
        }
    });
});

Stacktrace

我也尝试按照文档中的建议与客户端和发行版建立连接,但是我仍然遇到相同的错误

try {
    const client = await pool.connect()
    await client.query(buildQueryStringInsert([file]))
} catch (err) {
    console.error(err.stack)
} finally {
    client.release()
}

感谢您的时间

0 个答案:

没有答案