[vmschedule]2011.11.18-2011.11.23学习总结

1 view
Skip to first unread message

孙建刚

unread,
Nov 23, 2011, 2:35:41 AM11/23/11
to xiyoucloud

学习主要内容:

这周学习主要是围绕《Erlang And OTP in Action》这本书展开,主要学习了本书中的PART IIBuilding A Production System

1.深入学习了application skeleton

2.深入学习了gen_server模型、logging

3.练习完成了书中的一个例子——Simple Cache(SC)


这周计划:

1.PART II中的东西学习完。

2.能够和康师哥交流一次。


收获:

simple Cache为例来说明。

1.知道了application的目录结构,知道了每一个模块应该如何去完成。

application skeleton

simple_cache/

├── doc

├── ebin

│   └── simple_cache.app

├── Emakefile

├── include

├── priv

└── src

├── sc_app.erl

├── sc_element.erl

├── sc_store.erl

├── sc_sup.erl

└── simple_cache.erl

2.gen_serverbehaviour比之前有了更深入一层的理解。

概括一下就是:

Canonical module layout for a behaviour consists of four sections,they are header, API, behaviour interface, internal functions.

另外,在gen_server behaviour中,这个概念比较重要:

gen_server:call() module:handle_call/3 发送同步消息,需要回复

gen_server:cast() module:handle_cast/2 发送异步消息,不需要回复

3.在调试Simple Cache的过程当中,其中有关监督时间的一个问题。

gen_server中有一个时间是用来表示这个进程可以存活的时间的。

supersivour中的重启策略中,也有一个时间,比如,sc_sup.erl中有

RestartStrategy = {simple_one_for_one, 4, 30}

这个时间表示的是如果在30 seconds内重启次数超过4次的话,那么所有的进程都将退出,而且这个监督者进程supervisour也会退出,交给下一个更高级别的supervisour进行下一步的动作。


附件中为Simple Cache写的一个例子。


simple_cache.tar.gz

xiyoucloud

unread,
Nov 25, 2011, 4:44:04 AM11/25/11
to xiyou...@googlegroups.com, xiyoucloud
erlang 还有release 模式你没有学习。这个很重要


发自我的 iPhone
<simple_cache.tar.gz>
Reply all
Reply to author
Forward
0 new messages