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 shutdown_gracefully(
&mut self,
) -> impl Future<Output = SklResult<()>> + Send;
fn get_next_task(&mut self) -> Option<(ExecutionTask, TaskHandle)>;
fn mark_task_completed(&mut self, handle: &TaskHandle) -> SklResult<()>;
fn mark_task_failed(
&mut self,
handle: &TaskHandle,
error: String,
) -> SklResult<()>;
}Expand description
Task scheduler trait for pluggable scheduling implementations
Provides a flexible interface for different scheduling strategies that can be swapped based on workload characteristics and requirements.
Required Methods§
Sourcefn schedule_task(&mut self, task: ExecutionTask) -> SklResult<TaskHandle>
fn schedule_task(&mut self, task: ExecutionTask) -> SklResult<TaskHandle>
Sourcefn schedule_batch(
&mut self,
tasks: Vec<ExecutionTask>,
) -> SklResult<Vec<TaskHandle>>
fn schedule_batch( &mut self, tasks: Vec<ExecutionTask>, ) -> SklResult<Vec<TaskHandle>>
Sourcefn cancel_task(&mut self, handle: TaskHandle) -> SklResult<()>
fn cancel_task(&mut self, handle: TaskHandle) -> SklResult<()>
Sourcefn get_status(&self) -> SchedulerStatus
fn get_status(&self) -> SchedulerStatus
Sourcefn update_config(&mut self, config: SchedulerConfig) -> SklResult<()>
fn update_config(&mut self, config: SchedulerConfig) -> SklResult<()>
Sourcefn get_next_task(&mut self) -> Option<(ExecutionTask, TaskHandle)>
fn get_next_task(&mut self) -> Option<(ExecutionTask, TaskHandle)>
Get next task to execute (for scheduler implementations)
Sourcefn mark_task_completed(&mut self, handle: &TaskHandle) -> SklResult<()>
fn mark_task_completed(&mut self, handle: &TaskHandle) -> SklResult<()>
Mark task as completed
Sourcefn mark_task_failed(
&mut self,
handle: &TaskHandle,
error: String,
) -> SklResult<()>
fn mark_task_failed( &mut self, handle: &TaskHandle, error: String, ) -> SklResult<()>
Mark task as failed
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.