如何在NodeJS中高效地进行缓冲,以批量插入事件流中的数据,而不是每次接收到一条记录就进行单独插入。以下是我心中的伪代码:
// Open MongoDB connection
mystream.on('data', (record) => {
// bufferize data into an array
// if the buffer is full (1000 records)
// bulk insert into MongoDB and empty buffer
})
mystream.on('end', () => {
// close connection
})
这看起来现实吗? 是否有任何可能的优化?现有的库是否能够提供帮助?
stream
API听起来非常适合,你应该考虑使用一个可写流(Writable)。可以通过设置highWaterMark来控制缓冲区的大小。可写流类有一个final()
函数,当流完成时会被调用。这可以用于关闭数据库连接。 - jorgenkgstream.Readable.from()
),然后将其传输到缓冲区Writable中。因此,脚本不会获取比可存储在其可写缓冲区中更多的数据。 - jorgenkg