gpt4 book ai didi

multithreading - 记录到 Node.js 中的文件 : Is it safe with clusters?

转载 作者:搜寻专家 更新时间:2023-10-31 23:14:21 25 4
gpt4 key购买 nike

如果我在运行此代码的一台机器上有 4、8 或更多线程和集群,日志文件/文件编写器是否会发生资源争用?如果是这样,您可以发布一个示例来说明吗?到目前为止,我所做的所有测试似乎都表明写入数据不会交织在一起,也不会被丢弃,但我并不是 100% 相信

谢谢!

var errLog = fs.createWriteStream(... + '/error.log');
GLOBAL.dbLog = fs.createWriteStream(... + '/db.log');

最佳答案

没有线程或集群进程的协调,所以问题归结为操作系统是否允许多个打开的写入流到一个文件。 CreateWriteStream 的默认 cflags是 O_WRONLY || O_创造 || O_TRUNC。这表明第一个问题 - 所有进程都将创建一个新的截断文件(当您可能想要附加时)。

因此假设您在创建流时将 w+ 指定为标志...

对于 Linux,this related question表示只要字节数小于 PIPE_BUF 字节(Linux 上为 4096,其他一些 Unix 上为 512)就没问题。

我不确定 Windows 上的答案是什么。

关于multithreading - 记录到 Node.js 中的文件 : Is it safe with clusters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10237684/

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