Django<>节点.js快速通信

2024-04-18 13:04:15 发布

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

我尝试了requests,但由于tcp连接需要很长时间(我不知道如何保持套接字打开),所以看起来很慢

我现在尝试zerorpc,它有persistent connection的概念。
Django<;->;节点.js第一条消息的通信正常,但第二次尝试时出现Lost remote after 10s heartbeat错误,通信失败。在

我可能遗漏了一些显而易见的东西。在

# 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代码有关。在


Tags: djangoltgtclient概念消息节点js
1条回答
网友
1楼 · 发布于 2024-04-18 13:04:15

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

一种解决方案是在geventioloop之上运行django,看起来http://gunicorn.org/可能会有所帮助。在

相关问题 更多 >