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事件。
允许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事件。
相关文章推荐
- Erlang的gen_server的terminate使用的几点总结
- erlang中gen_server出现”exception exit: timeout_value“错误
- SQL Server timeout分析和总结
- Erlang generic standard behaviours -- gen_server system msg
- erlang的gen_server
- Erlang generic standard behaviours -- gen_server terminate
- Erlang学习:OTP - Application & supervisor & gen_server
- Erlang入门:gen_server代码模板
- erlang gen_server 测试
- erlang gen_server实例
- Erlang入门:gen_server实例操作与练习2
- [Erlang 0023] 理解Erlang/OTP gen_server
- Erlang OTP源码分析 – gen_server
- [小心得]对erlang(函数式语言)的新理解——有关gen_server, supervisor的小小理解
- erlang四大behaviour之一gen_server
- [Erlang 0023] 理解Erlang/OTP gen_server
- Erlang generic standard behaviours -- gen_server hibernate
- [Erlang 学习笔记]erlang behaviour小结之gen_server
- [Erlang 0023] 理解Erlang/OTP gen_server
- Erlang:RabbitMQ源码分析 2. gen_server和gen_server2 深入剖析