erlang supervisor说明】的更多相关文章

1. init函数 init() -> {ok, {SupFlags, [ChildSpec,...]}} | ignore. [ChildSpec,...] 是在init之后默认要启动的子进程. 2. SupFlags参数 {Type, Times, Sec} Type: 重启策略 one_for_one: 一个子进程终止,只重启该进程,在init的时候会启动参数内的子进程 simple_one_for_one: 同one_for_one,但是在init的时候不会启动子进程,需要动态调用启动…
Supervisor Behaviour是一个用来实现一个supervisor进程来监控其他子进程的模块 子进程可以是另一个supervisor,也可以是一个worker进程. worker进程一般使用gen_event,gen_fsm或gen_server behaviour来实现. 一个使用该模块来实现的supervisor有一个接口方法的标准集,包括跟踪和错误报告的功能. supervisor用来构建一个分层进程结构,称为supervision tree,这是组织一个容错系统的好方式 1,…
simple_one_for_one vs one_for_one: 相同点: 这种Restart Strategy和one_for_one基本相同(即当一个child process挂掉后,仅仅重启该child process 而不影响其他child process). 异同点: 1, simple_one_for_one supvisor启动时不会启动任何子进程,所有子进程都只能通过调用 supervisor:start_child(Sup, Args) 来动态启动. 2, simple_o…
文字部分转自: http://1234n.com/?post/qou3eb supervisor的子进程 一开始使用supervisor的时候,我用的是init/1返回子进程规格列表的方式,并且所有子进程只有两种类型,一种是supervisor进程,一种是gen_server. 但这次代码重构中,我遇到一个情况.如果我可以启动普通的进程而不是gen_server,我就可以把一些我觉得没必要做成gen_server的模块代码精简掉.因为一些模块代码完全没用到任何gen_server的优势,只是借g…
http://www.cnblogs.com/me-sa/archive/2012/01/10/erlang0030.html Supervisors are used to build an hierarchical process structure called a supervision tree, a nice way to structure a fault tolerant application.                                         …
我相信很多朋友会认为启动就是双击一下Syncthing程序图标,随后就启动完毕了!如果这样认为,对,也不对!对,是因为的确是这样操作,启动了Syncthing:不对是因为在调试Syncthing启动过程时发现很奇怪!有哪些奇怪的地方呢? 一,Syncthing启动的奇怪问题. 1,启动时候总是运行"monitorMain(options)"函数,另外一个函数"syncthingMain(options)"从来没有运行过? 2,启动log前缀好几种,第三种log前缀不…
转自: http://diaocow.iteye.com/blog/1762895 今天细致的看了下supervisor,现在做个总结: 其中,方块代表supervisor process,它的功能很简单,就负责看管它下面的“小弟”(child processes) 并且在必要的时候对某个child process执行restart或者terminate操作:而圆形就代表worker process,它才是真正负责干活的process:特别注意,supervisor process 监控的不一定…
http://www.cnblogs.com/puputu/articles/1689621.html 1. 监督规则 一个监督者负责启动.停止.监控他的子进程.监督者的一个基本概念就是当必要的时候重启子进程保证它们的存活 哪个子进程要重启和被监控是由一个子规程列表决定的,子进程按照列表中指定的顺序启动,并按相反的顺序终止 2. 实例 监督者的回调模块 -module(ch_sup).  -behaviour(supervisor).  -export([start_link/0]).  -ex…
概要: 通用监督者行为   描述: 一个实现监督者的行为模块,一个监督被称为子进程的其它进程的进程.一个子进程可以是另一个监督者或工作者进程.工作者进程通常的实现使用gen_event,gen_fsm和gen_server中的行为.监督者使用这个模块实现一组标准的接口函数和包括跟踪和错误报告的功能.监督者被用来构建称为监控树的分层进程结构,一个构建容错应用的很好的方式.参考OTP设计原理获得更多信息.   监督者设定哪些子进程被监督的定义,位于导出一组预定义函数的回调模块.   除非另作说明,如…
  上周Erlang讨论群里面提到lists的++实现,争论大多基于猜测,其实打开代码看一下就都明了.贴出代码截图后有同学问这代码是哪里找的?   "代码去哪里找?",关于Erlang源码阅读的路线图江湖上只有一份残卷了.我觉得"代码在哪儿?"这类问题是信息不对称造成的,本身难度不大,就像<贫民窟的百万富翁>里面的情节:贾马尔知道市井生活中的零零碎碎却说不出国徽上的文字,我们就从电影中的这一幕开始本文的探索吧     内景,演播室—夜晚 普瑞姆:这个问题…