Erlang 旧节点关闭时如何连接到新riak节点?

Erlang 旧节点关闭时如何连接到新riak节点?,erlang,riak,Erlang,Riak,我使用的是riak erlang客户端 根据,我可以连接到一个节点: 1> {ok, Pid} = riakc_pb_socket:start_link("127.0.0.1", 8087). {ok,<0.56.0>} 1>{ok,Pid}=riakc\u pb\u套接字:启动链接(“127.0.0.1”,8087)。 {好的,} 我知道当节点关闭时,它将发送消息{tcp\u closed,\u FromPid},但是我应该在哪里接收此消息并连接到另一个活动节点

我使用的是riak erlang客户端

根据,我可以连接到一个节点:

 1> {ok, Pid} = riakc_pb_socket:start_link("127.0.0.1", 8087).
    {ok,<0.56.0>}
1>{ok,Pid}=riakc\u pb\u套接字:启动链接(“127.0.0.1”,8087)。
{好的,}
我知道当节点关闭时,它将发送消息
{tcp\u closed,\u FromPid}
,但是我应该在哪里接收此消息并连接到另一个活动节点?还是有更好的方法来做到这一点?

信息

{tcp_closed, Socket}
将发送到riakc_pb_socket进程,然后通过发送

{error, disconnected} 
如果设置了自动重新连接,riakc\U pb\U套接字进程将尝试重新建立连接

您的代码将在响应服务器的某些请求时看到断开连接的错误

摘自riakc_pb_socket.erl:

第1025行:

handle_info({tcp_closed, _Socket}, State) ->
    disconnect(State);
断开功能:

%% @private
%% Disconnect socket if connected
disconnect(State) ->
    %% Tell any pending requests we've disconnected
    _ = case State#state.active of
            undefined ->
                ok;
            Request ->
                send_caller({error, disconnected}, Request)
        end,

    %% Make sure the connection is really closed
    case State#state.sock of
        undefined ->
            ok;
        Sock ->
            gen_tcp:close(Sock)
    end,

    %% Decide whether to reconnect or exit
    NewState = State#state{sock = undefined, active = undefined},
    case State#state.auto_reconnect of
        true ->
            %% Schedule the reconnect message and return state
            erlang:send_after(State#state.reconnect_interval, self(), reconnect),
            {noreply, increase_reconnect_interval(NewState)};
        false ->
            {stop, disconnected, NewState}
    end.

非常感谢。我发现riak ruby客户端可以连接到节点群集。但是对于riak erlang客户机没有这样的方法。