在两个进程之间传递消息
Passing messages between two processes
我正在构建一个有 2 个进程的系统。
进程 1
这个过程实际上是一个Node.js
程序。这个过程实际上是一个 Web Server 处理传入的请求。
进程 2
这个过程实际上是一个C++
程序。
在 rc.local
的帮助下,这两个进程在启动时自动启动
现在,对于 Process 1
,有一些特定的请求应该传递给 Process 2
。
例如,如果 Process 1
在路由 /enqueue
收到一个带有 JSON
正文负载的 post 请求,Process 1
应该将 JSON
并传递给 Process 2
.
当 Process 2
接收到 JSON
时,它应该终止一个工作线程并使用该 JSON
启动一个新线程来执行实际任务。无论工作线程是否仍在处理之前的工作线程,都应终止工作线程 JSON
如果这两个进程都是 Node.js
应用程序,我可以从 Process 1
中分叉 Process 2
并使用以下代码。
process.on('message',function(message){
//implementation
}
...
process.send(data);
但我的第二个进程是 C++
应用程序。
知道如何实施吗?
注意: 在标记这个问题之前,请记住我不是在寻找完整的代码。我只需要知道如何去做。
您不能为此目的使用 Nodejs messaging/eventing 工具,因为它特定于 Node。
您将需要使用操作系统的通信工具,例如 Unix、TCP、UDP 套接字或两个进程都可以与之通信的事件系统,例如 Redis 或 ZeroMQ。
我正在构建一个有 2 个进程的系统。
进程 1
这个过程实际上是一个Node.js
程序。这个过程实际上是一个 Web Server 处理传入的请求。
进程 2
这个过程实际上是一个C++
程序。
在 rc.local
现在,对于 Process 1
,有一些特定的请求应该传递给 Process 2
。
例如,如果 Process 1
在路由 /enqueue
收到一个带有 JSON
正文负载的 post 请求,Process 1
应该将 JSON
并传递给 Process 2
.
当 Process 2
接收到 JSON
时,它应该终止一个工作线程并使用该 JSON
启动一个新线程来执行实际任务。无论工作线程是否仍在处理之前的工作线程,都应终止工作线程 JSON
如果这两个进程都是 Node.js
应用程序,我可以从 Process 1
中分叉 Process 2
并使用以下代码。
process.on('message',function(message){
//implementation
}
...
process.send(data);
但我的第二个进程是 C++
应用程序。
知道如何实施吗?
注意: 在标记这个问题之前,请记住我不是在寻找完整的代码。我只需要知道如何去做。
您不能为此目的使用 Nodejs messaging/eventing 工具,因为它特定于 Node。
您将需要使用操作系统的通信工具,例如 Unix、TCP、UDP 套接字或两个进程都可以与之通信的事件系统,例如 Redis 或 ZeroMQ。