我有一个node.js应用程序,其中包含软件的用户界面。由于我正在处理机器学习,因此我将python用于此类任务。正如我期望的那样,可能同时有数千个请求,因此使用multiprocessing
模块来实现python应用程序。后面的应用程序在初始化时会创建一些结构来帮助任务执行(学习模型,字典等),理想情况下,该结构只会被加载一次。
我想从node.js激活特定的 python任务。
我已经阅读了有关该主题的几个问题,但不能决定最佳方法。
一些我读过的内容,例如Bidrectional node/python communication,建议从node.js内生成一个python进程,并使用stdin
和stdout
进行通信。
直觉上,我认为创建python服务器将是一个很好的解决方案,基本上出于here所示的相同原因。
最后一个链接的答案提出了两种方法的利弊。为了开发一个快速的原型供最初使用,我尝试使用 spawn process 方法,为此,我使用了python-shell
节点模块,但是由于我正在使用multiprocessing
在python it does not work中。
我也读到了要通过进程one needs to setup flask with third-parties solutions执行一项任务。我还在这里(this和this)发现了一些问题,建议使用socketio
在节点和python之间进行通信。但是后来,我认为后一种方法并不是最好的方法,因为incompatibility between the node module and the python one。
此外,我还意识到有可能使用消息传递服务,例如apache kafka(似乎是免费的),zeroMQ,或者由于我将所有内容都部署在亚马逊上,因此{ {3}}
什么是扩展性的最佳解决方案?哪个可以开发最快?有没有比提出的解决方案更好的解决方案?