簡體   English   中英

如何讓 Python 腳本在連接到 Node.JS 服務器的后台持續運行

[英]How to have a Python Script run constantly in the background connected to a Node.JS server

目前我有一個需要運行 python 腳本的 Node.JS 服務器。 此腳本的一部分從服務器導入一些數據,這對體驗有害,因為此 Python 腳本需要頻繁運行。

我想要的是 Node.JS 服務器在服務器運行時運行這個 Python 腳本,然后在后台不斷地讓它繼續運行,並且能夠(從 Node.JS 服務器)調用一個 python ZC1C425268E68385D1AB4507 返回數據4C17385D1AB507 .

到目前為止,我在運行 python 腳本並輸出響應的 Node.JS 服務器上有這個。 每次需要檢索數據時都會重復此操作:

常量 util = 要求('util'); var options = { mode: 'text', args: [sentenceToUse] };

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 腳本。

以下是一些選項:

  1. python 腳本可以定期將數據發送回其標准輸出上的父級,並且您可以在 nodejs 到達時讀取該數據。

  2. 您可以在已知端口上的 python 腳本中放置一點本地 http 服務器或 socket.io 服務器,並讓您的 nodejs 父級與之通信以發出請求並獲得響應。

  3. Python-shell 模塊還向您展示了如何在文檔中的node.js 父級和 python 腳本之間進行通信,因此這也是一個選項。

由於選項 1 和 3 已經內置,我可能會從其中一個開始,直到您發現某些原因它們還不夠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM