您的位置:首页 > 其它

Erlang中genserver的timeout事件总结

2014-02-21 22:48 267 查看
(1)start_link(ServerName,M,Args,[{timeout,Time}].
允许gen_server在Time毫秒内完成初始化。
(2)call(ServerRef,Request,Timeout)
允许客户端进程在Timeout内等到返回结果,默认5s,如果在Timeout内没有结果返回,则客户端进程会因timeout事件而退出,因此当handle_call中有大任务要执行时,通常将该参数设为infinity,允许客户端无限等待结果返回。
(3)Module:init(Args)->Result={ok,State,Timeout},
Module:handle_call(Request,From,State)—>Result={reply,Reply,NewState,Timeout}.
此处的返回结果的timeout是指gen_server在Timeout时间内没有收到一个请求或一条消息时,gen_server会抛出timeout事件退出,此时需要handle_info(timeout,State)来捕获此timeout事件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: