[erlang-questions] 关于global进程死掉问题

Barco You <>
Wed Jan 9 05:39:48 CET 2013


你在B,C机器上设置timeout不就行了。

receive
{Pid,okss} ->
              io:format("~p~n", [{Pid,Any}]),
              Pid ! "thank you",
              loop()
after Timeout ->
        dosothing here
end.

2013/1/9 郎咸武 <>

> 假如有三台服务器A,B,C做一个集群。
> 在其中A 服务器上运行下面代码。
> 这是 三台服务器都能使用 gl进程发送消息。
>
> *问题是: *A 服务器挂掉后,B和C 两台服务器都不能正常使用.
>
> 请问有什么好的方法避免这个问题?
>
> 谢谢各位
>
> 郎咸武
>
>
>   1 -module(global_t).
>
>
>   2
>   3 -compile(export_all).
>   4
>   5
>   6 start() ->
>   7     Pid = spawn(?MODULE, loop, []),
>   8     global:register_name(gl, Pid).
>   9
>  10
>  11 loop() ->
>  12     io:format("loop~n", []),
>  13     receive
>  14         {Pid,Any} ->
>  15             io:format("~p~n", [{Pid,Any}]),
>  16             Pid ! okss,
>  17             loop()
>  18     end.
>  19
>  20
>  21
> ~
>
>
> ~
>
>
> ~
> --
> 只为成功找方法,不为失败找理由
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130109/49a708be/attachment.html>


More information about the erlang-questions mailing list