gpt4 book ai didi

写入 csv 文件时的 Node.js 同步

转载 作者:太空宇宙 更新时间:2023-11-04 03:11:01 33 4
gpt4 key购买 nike

我在一个系统上工作,其中每个请求和参数都记录到一个 csv 文件中。

写入文件时,我使用进行同步。

node.js 中的同步是如何工作的?

如果我想将请求记录到文件中,比如说基于时间的 csv 文件,我需要锁定它吗?

最佳答案

好吧,所以我花了一些时间阅读node.js源代码。如果您使用类似 fs.appendFile 的东西,您最终会到达这里(在 C++ 中):

  if (cb->IsFunction()) {
ASYNC_CALL(write, cb, fd, buf, len, pos)
return;
}

https://github.com/joyent/node/blob/master/src/node_file.cc#L681

write 是普通的老式 POSIC 写入,并且保证是原子的(与 pwrite 相反)。不会发生什么可怕的事情,但如果您在上一次调用完成之前再次调用 appendFile,线路可能会混淆。

您应该使用fs.createWriteStream,它将进行连续的 POSIX 写入(它将保留一个内部缓冲区,其中包含尚未写入的数据)。这将保证数据完全按照您写入流的顺序写入。

关于写入 csv 文件时的 Node.js 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18977078/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com