【问题标题】:Passing messages between two processes在两个进程之间传递消息
【发布时间】:2017-04-13 09:23:11
【问题描述】:

我正在构建一个有 2 个进程的系统。

流程 1
这个过程实际上是一个Node.js 程序。这个过程实际上是一个 Web Server 处理传入的请求。

流程 2
这个过程实际上是一个C++ 程序。

rc.local的帮助下,这两个进程都会在启动时自动启动

现在,对于Process 1,有一些特定的请求应该传递给Process 2

例如,如果Process 1 在路由/enqueue 收到带有JSON 正文有效负载的发布请求,则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++ 应用程序。

关于如何实现它的任何想法?

注意:在标记此问题之前,请记住我不是在寻找完整的代码。我只需要知道如何去做。

【问题讨论】:

  • 通过 FFI 查看 MPI(例如 OpenMPI)
  • 能否使用域 TCP 套接字转换消息,然后解析并在您的 cpp 进程中工作?

标签: c++ node.js process raspberry-pi ipc


【解决方案1】:

您不能为此目的使用 Nodejs 消息传递/事件处理工具,因为它是特定于 Node 的。

您需要使用操作系统的通信设施,例如 Unix、TCP、UDP 套接字或两个进程都可以通信的事件系统,例如 Redis 或 ZeroMQ。

【讨论】:

  • 刚刚检查了 ZeroMQ。看起来真的很有希望。会尽快试一试
猜你喜欢
  • 1970-01-01
  • 2012-02-12
  • 2016-04-30
  • 1970-01-01
  • 1970-01-01
  • 2016-04-30
  • 2017-06-10
  • 1970-01-01
  • 2022-01-01
相关资源
最近更新 更多