pub trait TaskRouter:
Send
+ Sync
+ 'static {
// Required methods
fn owner(&self, task_id: &TaskId) -> Option<NodeId>;
fn replicas(&self, task_id: &TaskId, count: usize) -> Vec<NodeId>;
fn is_local(&self, task_id: &TaskId) -> bool;
fn local_tasks(&self) -> Vec<TaskId>;
fn subscribe(&self) -> Receiver<OwnershipEvent>;
fn register_task(&self, task_id: TaskId);
fn unregister_task(&self, task_id: &TaskId);
}Expand description
Task routing service trait.
Required Methods§
Sourcefn replicas(&self, task_id: &TaskId, count: usize) -> Vec<NodeId>
fn replicas(&self, task_id: &TaskId, count: usize) -> Vec<NodeId>
Get replica nodes for redundancy.
Sourcefn local_tasks(&self) -> Vec<TaskId>
fn local_tasks(&self) -> Vec<TaskId>
Get all tasks owned by local node.
Sourcefn subscribe(&self) -> Receiver<OwnershipEvent>
fn subscribe(&self) -> Receiver<OwnershipEvent>
Subscribe to ownership changes.
Sourcefn register_task(&self, task_id: TaskId)
fn register_task(&self, task_id: TaskId)
Register a task for routing.
Sourcefn unregister_task(&self, task_id: &TaskId)
fn unregister_task(&self, task_id: &TaskId)
Unregister a task.