我可以从我的源代码的一个副本运行多个节点进程吗?

我想知道是否有可能从同一目录运行多个节点进程,无论是使用相同的文件还是使用不同的文件。 我正在运行的进程将基本上执行批处理作业,并不会运行服务器,但我也想知道服务器的情况。

假设我有以下结构

  • SRC
    • server.js
    • testing
      • file1.js
      • file2.js

我有一个两部分的问题。

我能在src目录下打开2个terminal,从第一个terminal执行PORT=3000 node server.js ,然后在同一个目录下,在第二个terminal运行PORT=3001 node server.js

其次,我想创build一个cron作业,运行批处理作业,所以我想从我的cron作业中调用node src/file1.jsnode src/file2.js 。 由于这些文件将驻留在同一个目录中,为了运行两个独立的作业,是否需要单独的源代码副本,还是可以从同一个目录执行,并且只有一个源代码副本?

通常,对于每个单独的节点进程,我们从同一个文件或不同文件的目录运行,是否需要将其从我的源代码的不同副本运行,或者可以使用我的代码的一个副本运行来自不同terminal或cron作业的多个节点进程?

我能在src目录下find2个terminal,基本上从第一个terminal执行PORT = 3000节点server.js,然后在第二个terminal的同一个目录下运行PORT = 3001节点server.js

是的,这将工作正常。 node.js程序的源代码从磁盘加载,parsing并转化为内存中的某种内部结构。 在程序运行的时候,源文件本身在加载之后不会再被使用。 您可以根据需要为应用的不同实例多次加载该源代码。 你将不得不确保每个实例不会争用相同的资源(端口,文件等),但看起来你已经意识到了这一点,如果是不同的程序运行在同一台计算机上。

其次,我想创build一个chron作业来运行批处理作业,所以我想从我的chron作业中调用node src / file1.js和node src / file2.js。 由于这些文件将驻留在同一个目录中,为了运行两个独立的作业,是否需要单独的源代码副本,还是可以从同一个目录执行,并且只有一个源代码副本?

来源的一个副本就好了。

一般来说,对于每个单独的节点进程,我们从一个目录运行在同一个文件或不同的文件上,是否需要运行它从我的源代码的不同副本,或者我可以使用我的代码的一个副本,并运行来自不同terminal或时钟作业的多个节点进程?

源的一个副本是好的。 为了给你一个想法,node.js的集群模块就是这样做的。 它使用相同的源代码运行多个进程。

不是node.js guru,但是即使它们在同一目录中,脚本也应该单独运行,只要它们不共享资源。 例如写入文件的并发进程(读取不是问题)可能会导致失败。 但系统调用应该工作得很好。