View Source ProcessHub.Service.Distributor (ProcessHub v0.1.1-alpha)
The distributor service provides API functions for distributing child processes.
Summary
Functions
Initiates process redistribution.
Terminates a child process and propagates the termination to rest of the cluster.
Initiates processes startup.
Initiates processes shutdown.
Return a list of all child processes started by all nodes in the cluster.
Returns all child processes started by the local node.
Functions
@spec child_redist_init( ProcessHub.hub_id(), ProcessHub.child_spec(), node(), keyword() | nil ) :: {:ok, :redistribution_initiated}
Initiates process redistribution.
@spec child_terminate( ProcessHub.hub_id(), ProcessHub.child_id(), ProcessHub.Strategy.Synchronization.Base ) :: :ok | {:error, :not_found | :restarting | :running}
Terminates a child process and propagates the termination to rest of the cluster.
@spec init_children(ProcessHub.hub_id(), [ProcessHub.child_spec()], keyword()) :: {:ok, :start_initiated} | (-> {:ok, list()}) | {:error, :child_start_timeout | :no_children | {:already_started, [ProcessHub.child_id()]}}
Initiates processes startup.
@spec stop_children(ProcessHub.hub_id(), [ProcessHub.child_id()], keyword()) :: (-> {:error, list()} | {:ok, list()}) | {:ok, :stop_initiated}
Initiates processes shutdown.
@spec which_children_global( ProcessHub.hub_id(), keyword() ) :: list()
Return a list of all child processes started by all nodes in the cluster.
@spec which_children_local(ProcessHub.hub_id(), keyword() | nil) :: {node(), [ {any(), :restarting | :undefined | pid(), :supervisor | :worker, :dynamic | list()} ]}
Returns all child processes started by the local node.
Works similar to Supervisor.which_children/1
but returns a list of tuple
where the first element is the node name and the second child processes started under the node.