Erlang中的gen_server有handle_call、handle_cast和handle_info这三个接口函数,其函数定义十分相近,但使用上有一些细微的差别:
handle_call用于处理远程调用(remote procedure calls),一般应返回一个Reply({reply, Reply, State})作为调用结果;
handle_cast一般不返回Reply({noreply, NewState}),而只改变服务器的状态,一般用于对服务器进行某些操作,比如关闭服务器;
handle_info用于处理其他一些“自发性”的信息(Spontaneous Message),即诸如相关连接进程崩溃所发出的{’EXIT’, Pid, Why}信息,同样一般没有Reply而只改变服务器状态。
译自《Programming Erlang》
訂閱:
張貼留言 (Atom)
0 意見