生成具有明确终点的子进程



我正在尝试使用子进程在express服务器中运行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程序只是打印hello。

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

谢谢!

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

如果经常调用这个路由处理程序,您可能需要考虑使用某种队列/池来限制在任何给定时间产生的进程数量。否则,您可能会耗尽系统资源。

相关内容

  • 没有找到相关文章

最新更新