非常教程

Elixir 1.5参考手册

节点 | Node

节点 | Node

与VM节点相关的函数。

此模块中的一些函数由编译器内联,类似于Kernel模块,它们在文档中显式标记为“由编译器内联”。有关内联函数的详细信息,请参阅Kernel模块。

类型

t()

函数

alive?()

返回true本地节点是否存在

connect(node)

建立连接到node

disconnect(node)

强制断开节点

get_cookie()

返回本地节点的魔术cookie

list()

返回系统中所有可见节点的列表,不包括本地节点。

list(args)

根据给定的参数返回节点列表。

monitor(node, flag)

监视节点的状态。

monitor(node, flag, options)

表现为monitor/2但它允许给予额外的选择,即:allow_passive_connect

ping(node)

尝试设置到节点的连接。

self()

返回当前节点。

set_cookie(node \ Node.self(), cookie)

设置node原子的魔法饼干cookie

spawn(node, fun)

返回的应用程序启动一个新的进程的PID funnode。如果node不存在,则返回无用的PID

spawn(node, fun, opts)

返回一个新的进程的PID通过的应用程序启动funnode

spawn(node, module, fun, args)

返回一个新的进程的PID通过的应用程序启动module.function(args)node

spawn(node, module, fun, args, opts)

返回一个新的进程的PID通过的应用程序启动module.function(args)node

spawn_link(node, fun)

返回一个新的连接进程的PID通过的应用程序启动funnode

spawn_link(node, module, fun, args)

返回一个新的连接进程的PID通过的应用程序启动module.function(args)node

start(name, type \ :longnames, tick_time \ 15000)

将非分布式节点转换为分布式节点。

stop()

将分布式节点转换为非分布式节点。

t()

t() :: node

alive?()

alive?() :: boolean

回报true如果本地节点是活动的。

也就是说,如果节点可以是分布式系统的一部分。

connect(node)

connect(t) :: boolean | :ignored

建立连接node

如果成功false则返回true,否则返回原子,:ignored如果本地节点未活动,则返回原子。

有关更多信息,请参阅:net_kernel.connect_node/1

disconnect(node)

disconnect(t) :: boolean | :ignored

强制断开节点。

这将看起来node好像本地节点已经崩溃。该功能主要用于Erlang网络认证协议。true如果断开连接成功则返回,否则返回false。如果本地节点没有活动,则函数返回:ignored

有关更多信息,请参阅:erlang.disconnect_node/1

get_cookie()

返回本地节点的神奇cookie。

如果节点处于活动状态,则返回cookie,否则返回:nocookie

list()

list() :: [t]

返回系统中所有可见节点的列表,不包括本地节点。

list(:visible)一样。

list(args)

list(state | [state]) :: [t]

根据给定的参数返回节点列表。

当参数是一个列表时,返回的结果是满足列表元素的结点的节点列表。

有关更多信息,请参阅:erlang.nodes/1

monitor(node, flag)

monitor(t, boolean) :: true

监视节点的状态。

如果flagtrue,则打开监视。如果flagfalse,则关闭监控。

有关更多信息,请参阅:erlang.monitor_node/2

要监视所有节点的状态更改,请参阅:net_kernel.monitor_nodes/3

monitor(node, flag, options)

monitor(t, boolean, [:allow_passive_connect]) :: true

行为monitor/2只是它允许给出一个额外的选项,即:allow_passive_connect

有关更多信息,请参阅:erlang.monitor_node/3

要监视所有节点的状态更改,请参阅:net_kernel.monitor_nodes/3

ping(node)

ping(t) :: :pong | :pang

尝试设置到节点的连接。

:pang如果失败或成功,则返回:pong

实例

iex> Node.ping(:unknown_node)
:pang

self()

self() :: t

返回当前节点。

它返回与内置相同的内容node()

set_cookie(node \ Node.self(), cookie)

设置node原子的魔法饼干cookie

默认节点是Node.self/0本地节点。如果node是本地节点,该函数还会将所有其他未知节点的cookie设置为cookie

FunctionClauseError如果给定node不存在,此函数将会引发。

spawn(node, fun)

spawn(t, (() -> any)) :: pid

返回的应用程序启动一个新的进程的PID funnode。如果node不存在,则返回无用的PID。

有关可用选项的列表,请参阅:erlang.spawn/2

编译器插入。

spawn(node, fun, opts)

spawn(t, (() -> any), Process.spawn_opts) ::
  pid |
  {pid, reference}

返回的应用程序启动一个新的进程的PID funnode

如果node不存在,则返回无用的PID。

有关可用选项的列表,请参阅:erlang.spawn_opt/3

编译器插入。

spawn(node, module, fun, args)

spawn(t, module, atom, [any]) :: pid

返回的应用程序启动一个新的进程的PID module.function(args)node

如果node不存在,则返回无用的PID。

有关可用选项的列表,请参阅:erlang.spawn/4

编译器插入。

spawn(node, module, fun, args, opts)

spawn(t, module, atom, [any], Process.spawn_opts) ::
  pid |
  {pid, reference}

返回的应用程序启动一个新的进程的PID module.function(args)node

如果node不存在,则返回无用的PID。

有关可用选项的列表,请参阅:erlang.spawn/5

编译器插入。

spawn_link(node, fun)

spawn_link(t, (() -> any)) :: pid

返回的应用程序启动一个新的链接进程的PID funnode

在调用进程和新进程之间创建一个链接,以原子方式。如果node不存在,则返回一个无用的PID(并且由于该链接,:noconnection将会收到一个退出信号并带有退出原因)。

编译器插入。

spawn_link(node, module, fun, args)

spawn_link(t, module, atom, [any]) :: pid

返回的应用程序启动一个新的链接进程的PID module.function(args)node

在调用进程和新进程之间创建一个链接,以原子方式。如果node不存在,则返回一个无用的PID(并且由于该链接,:noconnection将会收到一个退出信号并带有退出原因)。

编译器插入。

start(name, type \ :longnames, tick_time \ 15000)

start(node, :longnames | :shortnames, non_neg_integer) ::
  {:ok, pid} |
  {:error, term}

将非分布式节点转换为分布式节点。

此功能启动:net_kernel以及其他相关程序。

stop()

stop() :: :ok | {:error, :not_allowed | :not_found}

将分布式节点转换为非分布式节点。

对于网络中的其他节点,这与节点关闭相同。只有当节点启动时才可能Node.start/3,否则返回{:error, :not_allowed}{:error, :not_found}如果本地节点不活动,则返回。

节点 | Node相关

Elixir 1.5

Elixir 基于 Erlang 虚拟机的函数式、面向并行,是一种较好的编程语言。它以 Erlang 为基础,支持分布式、高容错、实时应用程序的开发。

主页 https://elixir-lang.org/
源码 https://github.com/elixir-lang/elixir
版本 1.5
发布版本 1.5.2