产生快速终点的儿童过程

时间:2016-07-18 18:21:33

标签: python node.js express child-process

我正在尝试使用子进程在我的快速服务器上运行我的python程序。如果它是普通的NodeJS,则该方法有效,但它不能在我的API端点上工作。

var spawn = require('child_process').spawn,
    a = spawn('python', ['test.py']);

router.get('/test',  function(req, res, next) {

a.stdout.on('data', function(data){

    console.log(data.toString());

  });

  a.stdin.write(JSON.stringify("Hello"));
  a.stdin.end();
});

python程序只打印你好。

这里有什么问题,我该如何解决。

谢谢!

1 个答案:

答案 0 :(得分:3)

在没有看到您的test.py源代码的情况下,我假设test.py在输出所有数据后退出。如果是这种情况,您需要将呼叫转移到路由处理程序中的spawn()

如果经常调用此路由处理程序,您可能需要考虑使用某种队列/池来限制在任何给定时间生成的进程数。没有它你就可以耗尽系统资源。