erlang gen tcp怎么判断当前gen

博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)erlang中判断进程是否存活
时间: 21:23:25
&&&& 阅读:784
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&一个参数的方法是已知Pid判断进程是否存活。两个参数的方法是已知节点和Pid或进程名判断进程是否存活。
is_process_alive(Pid) when is_pid(Pid)-&rpc:call(node(Pid),erlang,is_process_alive,[Pid]);is_process_alive(_Pid)-&false.
is_process_alive(undefined,_ProcName)-&is_process_alive(_Node,undefined)-&is_process_alive(Node,Pid) when is_pid(Pid)-&case rpc:call(Node,erlang,is_process_alive,[Pid]) ofundefined-&_Pid-&trueis_process_alive(Node,ProcName)-&case rpc:call(Node,erlang,whereis,[ProcName]) ofundefined-&_Pid-&trueend.标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/unqiang/p/4372639.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!说完了gen_server,今天我们来看看gen_event。&通常我们会有这么一种需求场景:采集客户端发送的事件,并做相应的处理,如下图:&EventServer负责接收客户端发送的事件消息,当它接受到一个事件消息后,它回调所有的EventHandler处理这条信息(不同的EventHandler对同一条消息会才采取不同的响应),所以EventServer实际上是充当着代理的角色,实际的事件消息是由EventHandler处理(我们称EventHandler是EventServer的callback模块)&现在我们按照上图,实现一下EventServer:&我们可以通过add_handler方法动态的往EventServer中添加EventHandler(EventServer内部维护着一个HandlerList);&notify方法供客户端向EventServer发送事件消息,当EventServer收到一条事件消息时({event, Event}),它遍历HandlerList,把这条消息交给每个EventHandler处理;&接着,我们实现两个EventHandler(EventServer的callback模块),其中terminal_logger会把接受到的事件消息打印到控制台,file_logger会把事件消息记录到文件。&&&现在我们运行下程序,看下效果&&&event_server:start()启动了一个EventServer(初始状态下没有任何的EventHandler),接着我们动态的添加了两个EventHandler(3,4两行命令),最后我们使用event_server:notify方法向EventServer发送了两条事件消息,当EventServer收到这些消息后,回调所有的EventHandler进行处理,其中terminal_logger将收到的事件打印到了屏幕(如红色箭头部分),file_logger将事件保存到了event.log中&至此我们就实现了一个EventServer,那么gen_event是什么呢?它实际上就是我们刚才EventServer的一种实现并且提供更多更稳健的功能(譬如,不仅支持EventHandler的动态添加,也支持动态卸载),下面我们就用gen_event重新实现以下刚才的需求:&执行下程序:&第四行,我们向event_server发送一条事件消息,这时候屏幕上,文件里都记录了hello world这条事件消息,当我们调用gen_event:delete_handler方法去掉new_terminal_logger后,再次发送事件消息,这时候只有文件中会记录,屏幕上不再显示&关于gen_event我们就说道这里,更多api细节,请看:&
阅读(...) 评论()博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 erlang gen server 的文章

 

随机推荐