Beethoven.RoleServer (Beethoven v0.3.7)
Server PID that manages role assignment across the cluster.
Leveraging the Mnesia integration with DistrServer
,
these processes will be ephemeral and keep all state within Mnesia.
Summary
Types
Alias for atom()
.
Simplified type for tracker records. Just excludes the table name from the record tuple.
List of roleRecord()
objects.
Functions
Returns a specification to start this module under a supervisor.
Manually copy the tracking DB to the node.
Starts assignment job on the RoleServer.
Supervisor Entry point.
Types
@type roleName() :: atom()
Alias for atom()
.
@type roleRecord() :: {roleName :: atom(), roleModule :: module(), args :: any(), instances :: integer()}
Simplified type for tracker records. Just excludes the table name from the record tuple.
@type roleRecords() :: [roleRecord()]
List of roleRecord()
objects.
Functions
Returns a specification to start this module under a supervisor.
See Supervisor
.
@spec copy_tracker() :: :ok | :already_exists | {:error, any()}
Manually copy the tracking DB to the node.
@spec start_assign() :: :ok
Starts assignment job on the RoleServer.
@spec start_link(any()) :: GenServer.on_start()
Supervisor Entry point.