我正在尝试使用ZeroRPC python服务器和node.js客户端进行一些简单的负载测试。我注意到的是,如果请求花费的时间超过10秒,我将无法获得任何数据。我试图在python代码中不配置任何心跳:

s = zerorpc.Server(Test(), heartbeat=None)

以及尝试配置node.js客户端:
new zerorpc.Client({ timeout: 60, heartbeatInterval: 60000 }),

但仍然看到相同的行为。

如何获得超过10秒才能返回结果的请求?

最佳答案

zerorpc-node (0.9.3) 的最后一个可用版本使用硬编码的 HEARBEAT 超时。

正如您在 https://github.com/dotcloud/zerorpc-node/blob/0.9.3/lib/channel.js 中看到的:

//Heartbeat rate in milliseconds
var HEARTBEAT = 5000;
...
//Resets the heartbeat expiration time
Channel.prototype._resetHeartbeat = function() {
    this._heartbeatExpirationTime = util.curTime() + HEARTBEAT * 2;
};

但是,当您尝试在客户端构造函数中指定时,最新的主版本实现了 heartbeatInterval 选项。

然后您的代码可以使用命令安装最新的主服务器
npm install git+https://github.com/dotcloud/zerorpc-node.git

或者等待新版本....

关于python - 如何配置 ZeroRPC 和超时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23203973/

10-13 07:30