Skip to main content

TaskRouter

Trait TaskRouter 

Source
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§

Source

fn owner(&self, task_id: &TaskId) -> Option<NodeId>

Get the owner node for a task.

Source

fn replicas(&self, task_id: &TaskId, count: usize) -> Vec<NodeId>

Get replica nodes for redundancy.

Source

fn is_local(&self, task_id: &TaskId) -> bool

Check if local node owns this task.

Source

fn local_tasks(&self) -> Vec<TaskId>

Get all tasks owned by local node.

Source

fn subscribe(&self) -> Receiver<OwnershipEvent>

Subscribe to ownership changes.

Source

fn register_task(&self, task_id: TaskId)

Register a task for routing.

Source

fn unregister_task(&self, task_id: &TaskId)

Unregister a task.

Implementors§