【问题标题】:django <-> node.js fast communicationdjango <-> node.js 快速通信
【发布时间】:2015-02-18 08:01:25
【问题描述】:

我尝试了requests,但似乎很慢,因为 tcp 连接需要很长时间(我不知道如何保持套接字打开)

我现在正在尝试zerorpc,它有persistent connection 的概念。
Django node.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 代码有关。

【问题讨论】:

    标签: python django node.js zerorpc


    【解决方案1】:

    zerorpc 使用 gevent 进行协作异步 IO,而 django 一次处理一个请求。当 django 处理一些 IO 时,zerorpc 没有得到它公平的 CPU 时间份额,并且无法处理心跳。在 zerorpc-python 中关闭心跳是可能的(出于这个原因),但不是在 zerorpc-node 上!

    一种解决方案是在 gevent ioloop 之上运行 django,看起来 http://gunicorn.org/ 可以提供一些帮助。

    【讨论】:

    • 感谢您解释原因!关于解决方案,我继续前进,并需要一些时间来尝试它..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    相关资源
    最近更新 更多