Ich baue ein System mit zwei Prozessen.Nachrichten zwischen zwei Prozessen übergeben
Prozess 1
Dieser Vorgang ist tatsächlich ein Node.js
Programm. Bei diesem Prozess handelt es sich tatsächlich um einen Webserver, der die eingehende Anforderung verarbeitet.
Prozess 2
Dieser Vorgang ist tatsächlich ein C++
Programm.
Beide Prozesse werden automatisch beim Start mit Hilfe von rc.local
Nun, für Process 1
gibt es einige konkrete Anfrage gestartet, die Process 2
übergeben werden sollen.
Wenn beispielsweise eine Process 1
POST-Anforderung an der Route empfängt /enqueue
mit einer JSON
Körper Nutzlast, soll die Process 1
JSON
stringify und Process 2
passieren.
Wenn Process 2
die JSON
empfängt, sollte es einen Worker-Thread beenden und einen neuen Thread mit dieser JSON
starten, um die eigentliche Aufgabe auszuführen. Der Arbeiter-Thread sollte unabhängig von getötet werden, ob der Arbeiter-Thread noch verarbeitet vorherigen JSON
Wenn beide Prozesse Node.js
Anwendung waren, ich Process 2
von Process 1
und verwendet den folgenden Code gegabelt haben könnte.
process.on('message',function(message){
//implementation
}
...
process.send(data);
Aber mein zweiter Prozess ist ein C++
App.
Irgendeine Idee, wie man es umsetzt?
Hinweis: Bevor Sie diese Frage markieren, beachten Sie bitte, dass ich nicht nach einem vollständigen Code suche. Ich brauche nur die Idee, wie es geht.
Werfen Sie einen Blick auf MPI (z. B. OpenMPI) über das FFI – OMGtechy
Könnten Sie Domäne TCP-Socket verwenden, um messge zu transformieren, dann analysieren und in Ihrem cpp-Prozess arbeiten? –