erlang监督者模式
来源:互联网 发布:比价商城源码 编辑:程序博客网 时间:2024/06/08 16:32
实现监督者需要实现回调init/1,示例如下:
-module(sc_sup).-behaviour(supervisor).%% API-export([start_link/0]).%% Supervisor callbacks-export([init/1]).-define(SERVER, ?MODULE).start_link() -> supervisor:start_link({local, ?SERVER}, ?MODULE, []).init([]) -> ElementSup = {sc_element_sup, {sc_element_sup, start_link, []}, permanent, 2000, supervisor, [sc_element]}, EventManager = {sc_event, {sc_event, start_link, []}, permanent, 2000, worker, [sc_event]}, Children = [ElementSup, EventManager], RestartStrategy = {one_for_one, 4, 3600}, {ok, {RestartStrategy, Children}}.其中:supervisor:start_link/3第一个参数的SERVER为注册进程名,init/1回调中RestartStrategy第一个参数表示启动策略,第二个参数表示最大启动次数,第三个参数表示时间片,上面就表示在3600秒内可以最多启动4次;Children为受监督的子进程,下面介绍子进程规范,
ElementSup = {sc_element_sup, {sc_element_sup, start_link, []},
permanent, 2000, supervisor, [sc_element]},
子进程规范由6个元素组成{ID,Start,Restart,Shutdown,Type,Modules},其中Start是个三元组{Module,Function,Arguments},第三个元素可以取值permanent,temporary,transient分别表示始终重启、永不重启、意外终止时重启,Shutdown可取brutal_kill,infinity及某个时间值,分别表示立即终止、充分时间终止与某段时间后终止,第五个元素可取supervisor、worker表示进程身份,第六个表示所依赖的模块。
ElementSup = {sc_element_sup, {sc_element_sup, start_link, []}, permanent, 2000, supervisor, [sc_element]},
0 0
- erlang监督者模式
- Erlang/OTP 监督者(Supervisor)
- [Erlang危机](2.2)监督者及start_link的语义
- Erlang的模式匹配
- erlang gen_server行为模式
- erlang应用行为模式
- Erlang 三种Socket模式
- Erlang函数与模式匹配
- Erlang函数递归调用模式
- nodejs 之 superior监督者工具使用
- Erlang内存管理和运行模式笔记
- Erlang自定义gen_container行为模式开发
- erlang 使用callback自定义行为模式
- [Erlang危机](4.1)作业控制模式
- Erlang中的模块与模式匹配
- Erlang行为模式实现模块的首部
- Erlang基础之模式匹配(1)
- Erlang基础之模式匹配(2)
- UITableView的reloadData方法,不执行cellForRow方法,但是执行了numberOfRows和heightForRow方法
- iOS 开发 OC编程 便利构造器以及初始化方法
- 9.4 认证用户
- 【字典树】HDU1247Hat’s Words
- 线性回归与逻辑回归
- erlang监督者模式
- 由于工作需要,写了一个关于支持通配符的批量删除文件或文件夹
- Java 格式化类
- 事件
- iOS 开发 OC编程 属性和字符串
- 【2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest G】【数据结构-线段树】Hiring 准备时间完成时间最早完成日期
- iOS 开发 OC编程 属性和字符串练习
- SqlServer循环插入10000条数据
- 更换temp表空间时hang住