Узел
Функции, связанные с узлами виртуальной машины.
Некоторые функции в этом модуле встроены компилятором, подобно функциям в модуле 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, если локальный узел не активен.
Для получения более подробной информации, см. :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
Отслеживает состояние узла.
Если 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.4.5/Node.html