如何让Python脚本在连接到Node.JS服务器的后台持续运行

2024-10-01 19:19:57 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我有一个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脚本


Tags: 数据test服务器脚本noderesponseutil时间
1条回答
网友
1楼 · 发布于 2024-10-01 19:19:57

似乎您需要更改python脚本本身以保持运行并响应来自其父脚本的请求。如果python脚本现在运行并退出,那么您无法从node.js停止该操作。您需要更改python脚本

以下是一些选项:

  1. python脚本可以定期将数据发送回stdout上的其父级,您可以在数据到达时从nodejs读取数据

  2. 您可以在python脚本中的一个已知端口上放置一个小型本地http服务器或socket.io服务器,并让您的nodejs父节点与该端口通信以发出请求并获得响应

  3. Python shell模块还向您展示了如何在node.js父级和Python脚本here in the doc之间进行通信,因此这也是一个选项

因为选项1和3已经是内置的,我可能会从其中一个开始,直到你发现它们不够的原因

相关问题 更多 >

    热门问题