Spec-Zone.ru › Elixir 1.18

Исходный код Узел

Функции, связанные с узлами виртуальной машины.

Некоторые функции в этом модуле инлайнены компилятором, подобно функциям в модуле Kernel, и они явно помечены в своих документах как "инлайненные компилятором". Для получения дополнительной информации об инлайненных функциях, обратитесь к модулю Kernel.

Краткое описание

Типы

state()
t()

Функции

alive?()

Возвращает true, если локальный узел активен.

connect(узел)

Устанавливает подключение к node.

disconnect(узел)

Принудительно разрывает подключение узла.

get_cookie()

Возвращает магическое cookie локального узла.

list()

Возвращает список всех видимых узлов в системе, исключая локальный узел.

list(аргументы)

Возвращает список узлов в соответствии с заданными аргументами.

monitor(узел, флаг)

Отслеживает состояние узла.

monitor(узел, флаг, опции)

Ведет себя как monitor/2, за исключением того, что позволяет указать дополнительную опцию, а именно :allow_passive_connect.

ping(узел)

Пытается установить соединение с узлом.

self()

Возвращает текущий узел.

set_cookie(узел \\ Node.self(), cookie)

Устанавливает магическое cookie узла node до атома cookie.

spawn(узел, функция)

Возвращает PID нового процесса, запущенного путем применения fun к node. Если node не существует, возвращается бесполезный PID.

spawn(узел, функция, опции)

Возвращает PID нового процесса, запущенного путем применения fun к node.

spawn(узел, модуль, функция, аргументы)

Возвращает PID нового процесса, запущенного путем применения module.function(args) к node.

spawn(узел, модуль, функция, аргументы, опции)

Возвращает PID нового процесса, запущенного путем применения module.function(args) к node.

spawn_link(узел, функция)

Возвращает PID нового связанного процесса, запущенного путем применения fun к node.

spawn_link(узел, модуль, функция, аргументы)

Возвращает PID нового связанного процесса, запущенного путем применения module.function(args) к node.

spawn_monitor(узел, функция)

Запускает заданную функцию на узле, отслеживает ее и возвращает ее PID и ссылку на мониторинг.

spawn_monitor(узел, модуль, функция, аргументы)

Запускает заданный модуль и функцию, передавая заданные аргументы на узел, отслеживает его и возвращает его PID и ссылку на мониторинг.

start(имя, тип \\ :longnames, время_тикета \\ 15000)

Преобразует нераспределенный узел в распределенный узел.

stop()

Преобразует распределенный узел в нераспределенный узел.

Типы

state()Исходный код

@type state() :: :visible | :hidden | :connected | :this | :known

t()Исходный код

@type t() :: node()

Функции

alive?()Source

@spec alive?() :: boolean()

Возвращает true, если локальный узел активен.

То есть, если узел может быть частью распределённой системы.

connect(node)Source

@spec connect(t()) :: boolean() | :ignored

Устанавливает подключение к node.

Возвращает true при успехе, false в противном случае и атом :ignored если локальный узел не активен.

Для получения более подробной информации см. :net_kernel.connect_node/1.

disconnect(node)Source

@spec disconnect(t()) :: boolean() | :ignored

Принудительно разрывает соединение с узлом.

Для node это будет выглядеть так, как будто локальный узел вышел из строя. Данная функция в основном используется в протоколах аутентификации Erlang-сети. Возвращает true если разрыв соединения выполнен успешно, иначе false. Если локальный узел не активен, функция возвращает :ignored.

Для получения более подробной информации см. :erlang.disconnect_node/1.

get_cookie()Source

@spec get_cookie() :: atom()

Возвращает магическое cookie локального узла.

Возвращает cookie, если узел активен, иначе :nocookie.

list()Source

@spec list() :: [t()]

Возвращает список всех видимых узлов в системе, за исключением локального узла.

То же самое, что и list(:visible).

Встроено в компилятор.

list(args)Source

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

Возвращает список узлов в соответствии с заданным аргументом.

Результат, возвращаемый при передаче списка в качестве аргумента, — это список узлов, удовлетворяющих дизъюнкции элементов этого списка.

Для получения более подробной информации см. :erlang.nodes/1.

Встроено в компилятор.

monitor(node, flag)Source

@spec monitor(t(), boolean()) :: true

Отслеживает статус узла.

Если flag имеет значение true, отслеживание включено. Если flag имеет значение false, отслеживание выключено.

Для получения более подробной информации см. :erlang.monitor_node/2.

Для отслеживания изменений статуса всех узлов см. :net_kernel.monitor_nodes/2.

monitor(node, flag, options)Source

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

Ведёт себя как monitor/2, за исключением возможности передачи дополнительного параметра — :allow_passive_connect.

Для получения более подробной информации см. :erlang.monitor_node/3.

Для отслеживания изменений статуса всех узлов см. :net_kernel.monitor_nodes/2.

ping(node)Source

@spec ping(t()) :: :pong | :pang

Пытается установить соединение с узлом.

Возвращает :pang при неудаче или :pong при успехе.

Примеры

iex> Node.ping(:unknown_node)
:pang

self()Source

@spec self() :: t()

Возвращает текущий узел.

Возвращает то же, что и встроенная функция node().

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

@spec set_cookie(t(), atom()) :: true

Устанавливает магическое cookie узла node на атом cookie.

По умолчанию узел — Node.self/0, локальный узел. Если node — это локальный узел, функция также устанавливает cookie для всех остальных неизвестных узлов на значение cookie.

Функция вызовет исключение FunctionClauseError, если указанный node не активен.

spawn(node, fun)Source

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

Возвращает PID нового процесса, созданного путём применения fun к node.

Если node не существует, возвращается бесполезный PID.

Список доступных параметров см. в :erlang.spawn/2.

Встроено в компилятор.

spawn(node, fun, opts)Source

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

Возвращает PID нового процесса, созданного путём применения fun к node.

Если node не существует, возвращается бесполезный PID.

Список доступных параметров см. в :erlang.spawn_opt/3.

Встроено в компилятор.

spawn(node, module, fun, args)Source

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

Возвращает PID нового процесса, созданного путём применения module.function(args) к node.

Если node не существует, возвращается бесполезный PID.

Список доступных параметров см. в :erlang.spawn/4.

Встроено в компилятор.

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

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

Возвращает PID нового процесса, созданного путём применения module.function(args) к node.

Если node не существует, возвращается бесполезный PID.

Список доступных параметров см. в :erlang.spawn_opt/5.

Встроено в компилятор.

spawn_link(node, fun)Source

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

Возвращает PID нового связанного процесса, созданного путём применения fun к node.

Связь создаётся между вызывающим процессом и новым процессом атомарно. Если node не существует, возвращается бесполезный PID (а из-за связи будет получен сигнал выхода с причиной выхода :noconnection).

Встроено в компилятор.

spawn_link(node, module, fun, args)Source

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

Возвращает PID нового связанного процесса, созданного путём применения module.function(args) к node.

Связь создаётся между вызывающим процессом и новым процессом атомарно. Если node не существует, возвращается бесполезный PID (а из-за связи будет получен сигнал выхода с причиной выхода :noconnection).

Встроено в компилятор.

spawn_monitor(node, fun)Source

@spec spawn_monitor(t(), (-> any())) :: {pid(), reference()}

Запускает данную функцию на узле, отслеживает её и возвращает PID и ссылку на отслеживание.

Встроено в компилятор.

END_OF_DOCUMENT_MARKER

spawn_monitor(node, module, fun, args)Source

@spec spawn_monitor(t(), module(), atom(), [any()]) :: {pid(), reference()}

Запускает указанный модуль и функцию, передавая заданные аргументы на узле, отслеживает его и возвращает его PID и ссылку отслеживания.

Встроено компилятором.

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

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

Преобразует узел, не участвующий в распределённом вычислении, в распределённый узел.

Эта функция запускает :net_kernel и другие связанные процессы.

Эта функция редко вызывается на практике. Вместо этого узлы называются и запускаются через командную строку, используя флаги --sname и --name. Если вам необходимо использовать эту функцию для динамического именования узла, убедитесь, что процесс epmd операционной системы запущен, вызвав epmd -daemon.

Вызов этой функции, когда распределение уже запущено, либо через командную строку, либо динамически, вернёт ошибку.

Примеры

{:ok, pid} = Node.start(:example, :shortnames, 15000)

stop()Source

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

Преобразует распределённый узел в узел, не участвующий в распределённом вычислении.

Для других узлов в сети это равносильно отключению узла. Возможен только при запуске узла с Node.start/3, в противном случае возвращает {:error, :not_allowed}. Возвращает {:error, :not_found} если локальный узел не активен.

Скачать версию ePub

Создано с помощью ExDoc (v0.36.1) для языка программирования Elixir

© 2012-2024 The Elixir Team
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.18.1/Node.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API