我有一个内存中的节点/ js对象,我备份到光盘(我正在使用JSON),目前使用fs.writeFile()。
如果经常发生这种情况,我如何确保多个文件写入不会交错,从而破坏数据?我没有在文档中看到任何建议fs.writeFile对该文件进行独占访问。我知道我可以使用同步版本,但这反而忽略了这一点。
我仍然是node.js的新手,所以请原谅我这是一个愚蠢的问题,还是之前已经回答过(我做过搜索)。
感激地收到提示或链接。
感谢。
答案 0 :(得分:0)
就像在任何其他环境中一样,您必须手动同步它们,只有您的应用程序知道何时可以交错等等的“逻辑”。
在其他环境中,如果是您尝试同步的线程,则可以使用锁定/信号量。在节点中,在不知道关于你的应用程序的任何其他内容的情况下,我想我会选择一个队列:每次你想要专门写一些东西到文件中,把这些东西排队,然后让一个单独的“工人”出列并写入。