TaskScheduler

Trait TaskScheduler 

Source
pub trait TaskScheduler: Send + Sync {
    // Required methods
    fn schedule_task(&mut self, task: ExecutionTask) -> SklResult<TaskHandle>;
    fn schedule_batch(
        &mut self,
        tasks: Vec<ExecutionTask>,
    ) -> SklResult<Vec<TaskHandle>>;
    fn cancel_task(&mut self, handle: TaskHandle) -> SklResult<()>;
    fn get_status(&self) -> SchedulerStatus;
    fn update_config(&mut self, config: SchedulerConfig) -> SklResult<()>;
    fn get_next_task(&mut self) -> Option<ExecutionTask>;
    fn mark_completed(&mut self, task_id: &str) -> SklResult<()>;
    fn mark_failed(&mut self, task_id: &str, error: String) -> SklResult<()>;
    fn get_metrics(&self) -> SchedulingMetrics;
}
Expand description

Task scheduler trait for pluggable scheduling implementations

Required Methods§

Source

fn schedule_task(&mut self, task: ExecutionTask) -> SklResult<TaskHandle>

Schedule a single task

Source

fn schedule_batch( &mut self, tasks: Vec<ExecutionTask>, ) -> SklResult<Vec<TaskHandle>>

Schedule multiple tasks as a batch

Source

fn cancel_task(&mut self, handle: TaskHandle) -> SklResult<()>

Cancel a scheduled task

Source

fn get_status(&self) -> SchedulerStatus

Get current scheduler status

Source

fn update_config(&mut self, config: SchedulerConfig) -> SklResult<()>

Update scheduler configuration

Source

fn get_next_task(&mut self) -> Option<ExecutionTask>

Get next task to execute (if any)

Source

fn mark_completed(&mut self, task_id: &str) -> SklResult<()>

Mark task as completed

Source

fn mark_failed(&mut self, task_id: &str, error: String) -> SklResult<()>

Mark task as failed

Source

fn get_metrics(&self) -> SchedulingMetrics

Get scheduling metrics

Implementors§