node.js中是否有任何方法可以分叉新进程并运行多个终端shell命令,并从同一进程/上下文中执行fs.writeFileSync等node.js函数。
作为一个例子,我想做以下事情。在同一过程中执行以下所有操作。
exec("git worktree add -b"....);
exec("cd ../");
writeFileSync(...);
这是一个express.js应用程序,并且因为多个用户将同时访问同一个文件系统并在同一个repo上执行git操作,所以我希望通过为每个用户生成一个新进程来避免冲突。
答案 0 :(得分:-1)
将其分成一个叫做孩子的主集线器。这些孩子会预先形成你需要多线程的任何写作/保存。
当需要创建其中一个写入线程时,只需让父级调用# test data
Lines <- "Name^FiscCode^Country^Adress^SomeData^
SomeCompany^235356^Romania^Adress1
Adress2^ 565863
SomeCompany^235356^Romania^Adress1^ 565863"
# for real problem use readLines("myfile")[-1]
L <- readLines(textConnection(Lines))[-1]
g <- rev(cumsum(rev(grepl("\\^ *\\d+$", L)))) ##
g <- max(g) - g + 1
L2 <- tapply(L, g, paste, collapse = " ")
read.table(text = L2, sep = "^")
。
请注意:通过让孩子通过管道打开/分叉来运行孩子通常会更好。关于此问题有many postings所以如果您愿意,请查看。另请查看这些docs。