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§
Sourcefn schedule_task(&mut self, task: ExecutionTask) -> SklResult<TaskHandle>
fn schedule_task(&mut self, task: ExecutionTask) -> SklResult<TaskHandle>
Schedule a single task
Sourcefn schedule_batch(
&mut self,
tasks: Vec<ExecutionTask>,
) -> SklResult<Vec<TaskHandle>>
fn schedule_batch( &mut self, tasks: Vec<ExecutionTask>, ) -> SklResult<Vec<TaskHandle>>
Schedule multiple tasks as a batch
Sourcefn cancel_task(&mut self, handle: TaskHandle) -> SklResult<()>
fn cancel_task(&mut self, handle: TaskHandle) -> SklResult<()>
Cancel a scheduled task
Sourcefn get_status(&self) -> SchedulerStatus
fn get_status(&self) -> SchedulerStatus
Get current scheduler status
Sourcefn update_config(&mut self, config: SchedulerConfig) -> SklResult<()>
fn update_config(&mut self, config: SchedulerConfig) -> SklResult<()>
Update scheduler configuration
Sourcefn get_next_task(&mut self) -> Option<ExecutionTask>
fn get_next_task(&mut self) -> Option<ExecutionTask>
Get next task to execute (if any)
Sourcefn mark_completed(&mut self, task_id: &str) -> SklResult<()>
fn mark_completed(&mut self, task_id: &str) -> SklResult<()>
Mark task as completed
Sourcefn get_metrics(&self) -> SchedulingMetrics
fn get_metrics(&self) -> SchedulingMetrics
Get scheduling metrics