node.js 运行 子进程中的函数?
node.js run function in child process?
我有一个 node.js 应用程序,它通过 Web 请求接收文件,然后将转换过程应用到该文件。由于任务很长 运行ning 这需要 运行 与主线程分开。
目前我刚刚通过 setTimeout()
调用调用了必要的代码。为了将主应用程序与转换过程隔离开来,我想将其移出到一个子进程中,因为它很长 运行ning 并且我想将主要代码与正在完成的工作隔离开来(我是否也担心很多?)。目前我正在打电话:
const execFile = require('child_process').execFile;
const child = execFile('node', './myModule.js', (error, stdout, stderr) => {
if (error) {
throw error;
}
console.log(stdout);
});
在 node.js 中这是正确的方法吗?还是只是启动一个带有指定模块和参数的子进程,但不必指定 'node' 作为可执行文件?
刚看到 node.js 提供了 'fork' 函数,用于执行模块,尽管它们需要像期待命令行参数一样编写,处理 process.argv 数组.
命令调用为:
child_process.fork(modulePath[, args][, options])
更多详情here。
在我的具体情况下,分叉可能没有意义,因为我正在使用的 node.js 库已经创建了一个分叉。
我有一个 node.js 应用程序,它通过 Web 请求接收文件,然后将转换过程应用到该文件。由于任务很长 运行ning 这需要 运行 与主线程分开。
目前我刚刚通过 setTimeout()
调用调用了必要的代码。为了将主应用程序与转换过程隔离开来,我想将其移出到一个子进程中,因为它很长 运行ning 并且我想将主要代码与正在完成的工作隔离开来(我是否也担心很多?)。目前我正在打电话:
const execFile = require('child_process').execFile;
const child = execFile('node', './myModule.js', (error, stdout, stderr) => {
if (error) {
throw error;
}
console.log(stdout);
});
在 node.js 中这是正确的方法吗?还是只是启动一个带有指定模块和参数的子进程,但不必指定 'node' 作为可执行文件?
刚看到 node.js 提供了 'fork' 函数,用于执行模块,尽管它们需要像期待命令行参数一样编写,处理 process.argv 数组.
命令调用为:
child_process.fork(modulePath[, args][, options])
更多详情here。
在我的具体情况下,分叉可能没有意义,因为我正在使用的 node.js 库已经创建了一个分叉。