前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Erlang 01 - 子进程规范

Erlang 01 - 子进程规范

作者头像
Reck Zhang
发布于 2021-08-11 03:18:44
发布于 2021-08-11 03:18:44
1.1K00
代码可运行
举报
文章被收录于专栏:Reck ZhangReck Zhang
运行总次数:0
代码可运行

子进程规范

子进程规范是一个用于描述监督者管理的进程的元组. 对于大多数监督者而言, 子进程会随监督者的启动而启动, 并在监督者的生命周期结束时退出. 对于单个需要监督的进程, init/1函数给出的描述如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Server = {tr_server, {tr_server, start_link, []}, permanent, 2000, worker, [tr_server]}

子进程规范由6个元素组成: {ID, Start, Restart, Shutdown, Type, Module}.

  1. ID, 是一个用于在系统内部标志各规范的项式. 为了简单起见, 我们可以采用模块名.
  2. Start, 是一个用于启动进程的三元组{Module, Function, Arguments}. 与调用内置函数spawn/3时一样, 其中第一个元素是模块名, 第二个元素是函数名, 第三个元素是函数的调用参数列表.
  3. Restart, 用于指明子进程发生故障时是否需要重启. 取值可以为:
    • permanent: 无论处于任何原因导致进程终止都应该重启进程.
    • temporary: 永不重起进程.
    • transient: 仅在进程意外终止时重启进程.
  4. Shutdown, 用于指明如何终止进程, 取值可以为:
    • 整型: 表示终止进程时应采用软关闭策略, 给进程留出一段自我了断的时间(以毫秒为单位), 如果进程未能在指定时间内自行退出, 将被无条件终止.
    • brutal_kill: 表示在关闭监督进程时立即终止子进程.
    • infinity: 主要用于子进程本身也同为监督者的情况, 表示应给予子进程充分的时间自行退出.
  5. Type: 用于表示进程是监督者(supervisor)还是工作者(worker). 在整个监督树中, 除了实现了supervisor行为模式的监督者进程以外, 剩下的都是工作进程.
  6. Modules: 表示该进程所依赖的模块. 这部分信息只用于在代码热升级的时候告知系统该以何种顺序升级各个模块. 一般来说, 只需要列出子进程的主模块.
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 子进程规范
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档