当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang load(AppDescr)用法及代码示例


load(AppDescr) -> ok | {error, Reason}
load(AppDescr, Distributed) -> ok | {error, Reason}
类型:
AppDescr = Application | (AppSpec :: application_spec())
Application = atom()
Distributed = 
    {Application, Nodes} | {Application, Time, Nodes} | default
Nodes = [node() | tuple_of(node())]
Time = integer() >= 1
Reason = term()
application_spec() =
{应用,
应用::atom(),
AppSpecKeys::[application_opt()]}

application_opt() =
{说明,说明::string()} |
{vsn,vsn::string()} |
{id, id::string()} |
{模块,[模块::module()]} |
{已注册,姓名::[姓名::atom()]} |
{应用程序,[应用程序::atom()]} |
{included_applications,[应用::atom()]} |
{env, [{参数::atom(), 瓦尔::term()}]} |
{start_phases,
[{阶段::atom(), 相位参数::term()}] |未定义} |
{最大T,最大T::timeout()} |
{最大P,最大P::integer() >= 1|无穷大} |
{mod,开始::{模块::module(), 开始参数::term()}}

将应用程序的应用程序规范加载到应用程序控制器中。它还加载任何包含的应用程序的应用程序规范。请注意,该函数不会加载 Erlang 目标代码。

应用程序可以通过其名称 Application 来指定。在这种情况下,应用程序控制器在代码路径中搜索应用程序资源文件Application.app并加载它包含的规范。

应用程序规范也可以直接指定为元组AppSpec,具有中说明的格式和内容app(4).

如果是 Distributed == {Application,[Time,]Nodes} ,则应用程序变为分布式。该参数会覆盖内核配置参数 distributed 中应用程序的值。 Application 必须是应用程序名称(与第一个参数相同)。如果节点崩溃并且指定了 Time,则应用程序控制器会等待 Time 毫秒,然后再尝试在另一个节点上重新启动应用程序。如果未指定Time,则默认为0,并立即重新启动应用程序。

Nodes 是应用程序可以运行的节点名称列表,优先级从左到右。节点名称可以使用元组进行分组,以指示它们具有相同的优先级。

例子:

Nodes = [cp1@cave, {cp2@cave, cp3@cave}]

这意味着应用程序最好在 cp1@cave 处启动。如果 cp1@cave 已关闭,则应用程序将从 cp2@cavecp3@cave 启动。

如果 Distributed == default ,则使用内核配置参数 distributed 中的应用程序值。

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 load(AppDescr) -> ok | {error, Reason}。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。