NodeJS分叉的Python进程 - Python的process.send()的替代方案?

时间:2014-05-22 10:37:04

标签: python node.js fork ipc

我用NodeJS分叉Python脚本,在分叉时,默认情况下,NodeJS在这个新进程和父进程之间创建一个IPC。

使用NodeJS,要将孩子的消息发送给父母,我会process.send({msg : 'toto'})

我怎么能用Python做到这一点?

http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options

1 个答案:

答案 0 :(得分:12)

好的,我找到了,终于很容易了。它只是写在正确的文件描述符上。

在NodeJS端参数上,像这样生成你的脚本:

var child = child_process.spawn('python', ['hello.py'], {
  stdio:[null, null, null, 'ipc']
});

child.on('message', function(message) {
  console.log('Received message...');
  console.log(message);
});

作为' ipc' channel是第4个参数,你必须在filedescriptor 3上写。 在Python方面:

import os

os.write(3, '{"dt" : "This is a test"}\n', "utf8")

完成。您将收到有关child.on的消息('消息'回调。

干杯!