[英]Python/Node ZeroRPC heartbeat error
我試圖從ZeroRPC 網站運行Python服務器/node.js客戶端HelloWorld示例。 所有的啟示性庫似乎都已正確安裝,但是在運行示例時出現錯誤:
{ name: 'HeartbeatError',
message: 'Lost remote after 10000ms',
traceback: '' }
有人看過嗎?
我正在使用“ zerorpc”:“ ^ 0.9.3”,當我運行耗時的python代碼時遇到相同的問題。 解決此問題的方法是,您需要修改zerorpc的庫代碼:node_modules-> zerorpc-> lib-> channel.js將對應方法更改為
//Runs the heartbeat on this channel
Channel.prototype._runHeartbeat = function() {
var self = this;
return setInterval(function() {
if(util.curTime() > self._heartbeatExpirationTime) {
//If we haven't received a response in 2 * heartbeat rate, send an
//error
// self.emit("heartbeat-error", "Lost remote after " + (HEARTBEAT * 2) + "ms");
// self.close();
}
//Heartbeat on the channel
try {
var event = events.create(self._envelope, self._createHeader(), "_zpc_hb", [0]);
self._socket.send(event);
} catch(e) {
console.error("Error occurred while sending heartbeat:", e);
}
}, HEARTBEAT);
};
在來自github的最新代碼中: https : //github.com/dotcloud/zerorpc-node,他們已經解決了這個問題。
如果可以,請使用gevent.sleep使zerorpc有足夠的時間來處理等待的消息,包括心跳。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.