嵌入模式允许你把Ranch监听器直接插入到你的监控树中. 如果整个应用程序其他部分挂掉了, 可以通过关闭监听器的方法, 来提供更好的容错控制.嵌入(Embedding)要嵌入 Ranch 到你自己的应用程序中, 只需要简单地把子进程规范添加到监控树中即可. 在应用程序的一个(一般在顶层Supervisor, 如果应用程序比较复杂, 也可能是其他层)Supervisor的init/1函数中完成这个过程.对于嵌入, Ranch 要求最少两种类型的子进程规范. 首先,需要添加ranch_sup到监控树, 只需要一次, 不管使用多少个监听器. 然后需要为每个监听器添加子进程规范.可以添加多个监听器, 比如80端口的HTTP监听器, 和443端口的HTTPS监听器.Ranch 提供了一个简便的辅助函数ranch:child_spec/6获取监听器的子进程规范, 其工作方式类似于ranch:start_listener/6, 只是它不启动任何进程, 只是返回子进程规范.对于ranch_sup, 子进程规范足够的简单, 不需要辅助函数.下面的例子添加ranch_sup和一个监听器到另一个应用程序的监控树中.直接嵌入 Ranch 到监控树中init([]) ->
RanchSupSpec = {
ranch_sup,
{ranch_sup, star
...
继续阅读
(34)