Configuration struct for RPC wrappers.
Fields
node_selector-NodeSelectorfor picking target nodesmodule- Remote module to call (required)timeout- RPC timeout in ms, or:infinity(default:5_000)retry- Retry attempts on failure (default:0)sleep_before_retry- Milliseconds to sleep before each retry (default:0)error_handling- Return{:ok, _} | {:error, _}tuples (default:false)enable_logging- Enable log for rpcfunctions- Function specs used byRpcWrapper(default:[])
Summary
Functions
Loads config from the application environment.
Loads config from a keyword list.
Creates a validated WrapperConfig with explicit parameters.
Validates a WrapperConfig struct. Raises EasyRpc.Error on any invalid field.
Types
@type function_spec() :: {name :: atom(), arity :: non_neg_integer()} | {name :: atom(), arity :: non_neg_integer(), opts :: keyword()}
@type t() :: %EasyRpc.WrapperConfig{ enable_logging: boolean(), error_handling: boolean(), functions: [function_spec()], module: module(), node_selector: EasyRpc.NodeSelector.t() | nil, retry: non_neg_integer(), sleep_before_retry: non_neg_integer(), timeout: pos_integer() | :infinity }
Functions
Loads config from the application environment.
Expected format:
config :my_app, :rpc_config,
nodes: [:node1@host],
select_mode: :random,
module: RemoteModule,
timeout: 5_000,
retry: 3,
sleep_before_retry: 200,
error_handling: true,
functions: [{:func_name, 1}]
Loads config from a keyword list.
@spec new!(EasyRpc.NodeSelector.t(), module()) :: t()
Creates a validated WrapperConfig with explicit parameters.
@spec new!(EasyRpc.NodeSelector.t(), module(), pos_integer() | :infinity) :: t()
@spec new!( EasyRpc.NodeSelector.t(), module(), pos_integer() | :infinity, non_neg_integer() ) :: t()
@spec new!( EasyRpc.NodeSelector.t(), module(), pos_integer() | :infinity, non_neg_integer(), non_neg_integer() ) :: t()
@spec new!( EasyRpc.NodeSelector.t(), module(), pos_integer() | :infinity, non_neg_integer(), non_neg_integer(), boolean() ) :: t()
Validates a WrapperConfig struct. Raises EasyRpc.Error on any invalid field.