Узел
Функции, связанные с узлами виртуальной машины.
Некоторые функции в этом модуле встроены компилятором, подобно функциям в модуле 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)
-
Устанавливает магическое cookie узла
nodeна атомcookie - spawn(node, fun)
-
Возвращает идентификатор нового процесса, запущенного с помощью применения
funкnode. Еслиnodeне существует, возвращается бесполезный идентификатор процесса. - spawn(node, fun, opts)
-
Возвращает идентификатор нового процесса, запущенного с помощью применения
funкnode. - spawn(node, module, fun, args)
-
Возвращает идентификатор нового процесса, запущенного с помощью применения
module.function(args)кnode. - spawn(node, module, fun, args, opts)
-
Возвращает идентификатор нового процесса, запущенного с помощью применения
module.function(args)кnode. - spawn_link(node, fun)
-
Возвращает идентификатор нового связанного процесса, запущенного с помощью применения
funкnode. - spawn_link(node, module, fun, args)
-
Возвращает идентификатор нового связанного процесса, запущенного с помощью применения
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.
Возвращает true, если успешно, false, если нет, и атом :ignored, если локальный узел не активен.
Для получения дополнительной информации, см. :erlang.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
Отслеживает состояние узла.
Если flag равно true, мониторинг включен. Если flag равно false, мониторинг выключен.
Для получения дополнительной информации, см. :erlang.monitor_node/2.
monitor(node, flag, options)
monitor(t, boolean, [:allow_passive_connect]) :: true
Ведет себя как monitor/2, за исключением возможности передачи дополнительного параметра, а именно :allow_passive_connect.
Для получения дополнительной информации, см. :erlang.monitor_node/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)
Устанавливает магическое cookie узла node на атом cookie.
По умолчанию узел - Node.self/0, локальный узел. Если node является локальным узлом, функция также устанавливает cookie всех других неизвестных узлов на cookie.
Эта функция вызовет FunctionClauseError, если заданный node не активен.
spawn(node, fun)
spawn(t, (() -> any)) :: pid
Возвращает идентификатор нового процесса, запущенного с помощью применения fun к node. Если node не существует, возвращается бесполезный идентификатор процесса.
Список доступных параметров см. в :erlang.spawn/2.
Встроено компилятором.
spawn(node, fun, opts)
spawn(t, (() -> any), Process.spawn_opts) ::
pid |
{pid, reference} Возвращает идентификатор нового процесса, запущенного с помощью применения fun к node.
Если node не существует, возвращается бесполезный идентификатор процесса.
Список доступных параметров см. в :erlang.spawn_opt/3.
Встроено компилятором.
spawn(node, module, fun, args)
spawn(t, module, atom, [any]) :: pid
Возвращает идентификатор нового процесса, запущенного с помощью применения module.function(args) к node.
Если node не существует, возвращается бесполезный идентификатор процесса.
Список доступных параметров см. в :erlang.spawn/4.
Встроено компилятором.
spawn(node, module, fun, args, opts)
spawn(t, module, atom, [any], Process.spawn_opts) ::
pid |
{pid, reference} Возвращает идентификатор нового процесса, запущенного с помощью применения module.function(args) к node.
Если node не существует, возвращается бесполезный идентификатор процесса.
Список доступных параметров см. в :erlang.spawn/5.
Встроено компилятором.
spawn_link(node, fun)
spawn_link(t, (() -> any)) :: pid
Возвращает идентификатор нового связанного процесса, запущенного с помощью применения fun к node.
Связь создаётся между вызывающим процессом и новым процессом атомарно. Если node не существует, возвращается бесполезный идентификатор процесса (и из-за связи будет получен сигнал выхода с причиной выхода :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} если локальный узел не активен.
© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.3.4/Node.html