View Source SuperWorker.Supervisor.Chain (SuperWorker v0.0.7)

Documentation for SuperWorker.Supervisor.Chain.

Summary

Types

t()

@type t() :: %SuperWorker.Supervisor.Chain{
  data_table: atom(),
  finished_callback: nil | {:fun, fun()} | {module(), atom(), [any()]},
  first_worker_id: any(),
  id: any(),
  partition: atom(),
  queue_length: non_neg_integer(),
  restart_strategy: atom(),
  send_type: :broadcast | :random | :partition | :round_robin,
  supervisor: atom()
}

Functions

add_worker(chain, worker)

@spec add_worker(t(), SuperWorker.Supervisor.Worker.t()) ::
  {:error, :already_exists} | {:ok, t()}

check_options(opts)

@spec check_options([atom() | keyword()]) ::
  {:error, atom() | {atom(), any()}} | {:ok, t()}

get_all_workers(chain)

@spec get_all_workers(t()) :: {:ok, [SuperWorker.Supervisor.Worker.t()]}

get_worker(chain, worker_id)

@spec get_worker(t(), any()) ::
  {:error, :worker_not_found} | {:ok, SuperWorker.Supervisor.Worker.t()}

kill_all_workers(chain)

@spec kill_all_workers(t()) :: {:ok, t()}

kill_worker(chain, worker_id)

@spec kill_worker(t(), any()) :: {:error, any()} | {:ok, t()}

new_data(chain, msg)

@spec new_data(t(), SuperWorker.Supervisor.Message.t()) :: any()

remove_worker(chain, worker_id)

@spec remove_worker(t(), any()) :: {:error, any()} | {:ok, t()}

restart_all_workers(chain)

@spec restart_all_workers(t()) :: {:ok, t()}

restart_worker(chain, worker_id)

@spec restart_worker(t(), any()) :: {:error, any()} | {:ok, t()}

worker_exists?(chain, worker_id)

@spec worker_exists?(t(), any()) :: boolean()