目前我有一个Node.JS服务器,需要运行python脚本。此脚本的一部分从服务器导入一些数据,这需要花费时间,这对体验不利,因为此Python脚本需要频繁运行
我想让Node.JS服务器在运行服务器时运行这个Python脚本,然后在后台让它一直运行,并能够(从Node.JS服务器)调用一个返回数据的Python函数
到目前为止,我在Node.JS服务器上已经有了这个脚本,它运行一个python脚本并输出响应。每次需要检索数据时都会重复此操作:
const util=require('util'); 变量选项={ 模式:“文本”, args:[句子化] };
const readPy = util.promisify(PythonShell.run);
const test = await readPy("spacyTest.py", options);
var response = test.toString();
response = response.toString();
response = response.replace(/'/g, '"');
response = JSON.parse(response);
return(response);
console.log(test);
'''
我怎样才能在后台运行它,而不必在每次需要数据时重新启动python脚本
似乎您需要更改python脚本本身以保持运行并响应来自其父脚本的请求。如果python脚本现在运行并退出,那么您无法从node.js停止该操作。您需要更改python脚本
以下是一些选项:
python脚本可以定期将数据发送回stdout上的其父级,您可以在数据到达时从nodejs读取数据
您可以在python脚本中的一个已知端口上放置一个小型本地http服务器或socket.io服务器,并让您的nodejs父节点与该端口通信以发出请求并获得响应
Python shell模块还向您展示了如何在node.js父级和Python脚本here in the doc之间进行通信,因此这也是一个选项
因为选项1和3已经是内置的,我可能会从其中一个开始,直到你发现它们不够的原因
相关问题 更多 >
编程相关推荐