Python 德扬戈<-&燃气轮机;node.js快速通信

Python 德扬戈<-&燃气轮机;node.js快速通信,python,django,node.js,zerorpc,Python,Django,Node.js,Zerorpc,我尝试了请求,但由于tcp连接需要很长时间,因此速度似乎很慢(我不知道如何保持套接字打开) 我现在正在尝试zerorpc,它有持久连接的概念 Django node.js通信在第一条消息中工作正常,但在第二次尝试时出现10秒心跳后丢失远程错误,通信失败 我可能遗漏了一些明显的东西 # following connection step is done in python a module so that it gets called only one time import zerorpc

我尝试了
请求
,但由于tcp连接需要很长时间,因此速度似乎很慢(我不知道如何保持套接字打开)

我现在正在尝试
zerorpc
,它有
持久连接的概念

Django node.js通信在第一条消息中工作正常,但在第二次尝试时出现
10秒心跳后丢失远程
错误,通信失败

我可能遗漏了一些明显的东西

# following connection step is done in python a module so that it gets called only one time 
import zerorpc

client = zerorpc.Client()
client.connect("tcp://127.0.0.1:7015")

def something(...):
   # this gets called for a http request, and we are messaging node.js using the zerorpc client.
   ...
   client.call_rpc(message)

其他客户端(从命令行)仍然可以与服务器对话并获得响应,所以我想这与上面的django代码有关。

zerorpc将gevent用于协作异步IOs,而django一次处理一个请求。当django处理某些IOs时,zerorpc无法获得公平的CPU时间份额,并且无法处理心跳。关闭心跳信号在zerorpc python中是可能的(正是出于这个原因),但在zerorpc节点上是不可能的


一种解决方案是在gevent ioloop上运行django,它看起来可以提供一些帮助。

感谢您的解释!关于解决方案,我继续前进,并将花一些时间来尝试。。