第四章 OTP应用与监督机制
应用是Erlang对相关模块进行打包的一种手段。打包的目的在于使这些模块成为一个整体。
监督者是OTP最为重要的一个特性。负责监控其他进程,并在出现问题时重启故障进程或向上汇报侦测到的问题。
4.1 OTP应用
应用:
在OTP环境下,应用的特殊含义:应用就是由磁盘上的一系列模块和若干额外的元数据文件按一定规范组织起来形成的软件组件。通过这种组织方式,系统便可以知晓当前已经安装了哪些应用,同时也让你能够按应用名来启动或停止应用。
浅显地说,OTP应用就是一组相互关联的代码。将其中的一部分称为库应用:这些应用纯粹是供其他应用调用的一系列模块的集合。(stdlib就是库应用的一个实例)
1. OTP应用的组织形式
创建OTP应用时的主要工作集中于标准目录结构的建立和应用元数据的编写。元数据的作用在于让系统知道如何启动和停止应用,还可以用于指定应用的依赖项。
主动应用与库应用,主要区别在于主动应用具有一定的生命周期,必须先启动才能发挥作用。
4.1.2 为应用添加元数据
元数据在ebin目录下.app文件中,这个.app文件作用在于告诉OTP如何启动应用,以及该应用该如何与系统中的其他应用相融合。
{application, tcp_rpc,
[{description, "RPC server for Erlang and OTP in action"},
{vsn, "0.1.0"},
{modules, [tr_app,
tr_sup,
tr_server]},
{registered, [tr_sup, tr_server]},
{applications, [kernel, stdlib]},
{mod, {tr_app, []}}
]}.