在两个进程之间传递消息

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。