NodeJS — 使用函数字符串而不是文件的 Fork 子进程
NodeJS — Fork Child Process with function string instead of file
我看过documentation fork 方法,它只描述了提供子模块文件的文件路径。
有谁知道是否可以(且未记录)直接传入子模块而不是通过文件?重点是,我想动态生成模块,然后用它创建一个子进程。
这是不可能的 -- fork()
创建一个完全不同的进程,不与其 parent 进程共享上下文或变量。
您可以选择在分叉进程中生成模块,并通过命令行或临时文件向其传递必要的参数,以便您的 child 可以 运行:
const data = 'something;
var childProcess = child_process.fork(__dirname + '/worker', [something]);
然后您可以使用 process.argv[2]
从 child 访问参数。
该方法的一个限制是您只能传递数据类型,并且不能从 worker 调用其 parent 上下文中的任何函数。您需要 child 和 parent 之间的某种 RPC,这超出了本答案的范围。
我看过documentation fork 方法,它只描述了提供子模块文件的文件路径。
有谁知道是否可以(且未记录)直接传入子模块而不是通过文件?重点是,我想动态生成模块,然后用它创建一个子进程。
这是不可能的 -- fork()
创建一个完全不同的进程,不与其 parent 进程共享上下文或变量。
您可以选择在分叉进程中生成模块,并通过命令行或临时文件向其传递必要的参数,以便您的 child 可以 运行:
const data = 'something;
var childProcess = child_process.fork(__dirname + '/worker', [something]);
然后您可以使用 process.argv[2]
从 child 访问参数。
该方法的一个限制是您只能传递数据类型,并且不能从 worker 调用其 parent 上下文中的任何函数。您需要 child 和 parent 之间的某种 RPC,这超出了本答案的范围。