同步节点中的文件写入

Synchronising file writes in node

本文关键字:文件 节点 同步      更新时间:2023-09-26

我有一个内存中的节点/js对象,我备份到光盘(我正在使用JSON),目前使用fs.writeFile()。

如果这种情况经常发生,如何确保多个文件写入不会交错,从而损坏数据? 我在文档中没有看到任何表明 fs.writeFile 对文件进行独占访问的内容。 我知道我可以使用同步版本,但这反而违背了重点。

我对node.js仍然很陌生,所以如果这是一个愚蠢的问题,或者之前已经回答过,请原谅我(我确实搜索过)。

感谢收到的提示或链接。

谢谢。

就像在任何其他环境中一样,您必须手动同步它们,只有您的应用程序知道何时可以交错等的"逻辑"。

在其他环境中,如果尝试同步的是线程,则可以使用锁/信号量。在 node 中,在对应用程序一无所知的情况下,我想我会选择一个队列:每次你想专门向文件写入某些内容时,将某些内容排队,并有一个"worker"取消排队和写入。