我的后端有套接字连接(exts.js),每秒都有来自该套接字的数据,我想将这些值存储到我的数据库(PostgreSQL).由于数据每秒都会到来,所以我不想在它们到来时存储它们,因为这将是大量的写入操作.所以我将它们保持在tempValues
,并每隔1分钟将这些值存储到数据库中.但我觉得必须有更好的方法来完成这项工作,而不是使用setInterval.也许是第三方图书馆或其他什么?如果服务器崩溃或发生了什么事情,我可以释放临时数据.
以下是我当前的代码块:
let tempValues = [];
setInterval(() => {
tempValues.map(async (option, i) => {
await pool.query(
"INSERT INTO plc_options (name, value, date) VALUES ($1, $2, $3)",
[option.name, option.value, option.timestamp]
);
if (i === tempValues.length - 1) tempValues = [];
})
}, 60000);
socket.onAny((eventName, ...args) => {
tempValues.push({ name: eventName, value: args[0], timestamp: new Date() })
});