pub struct Scheduler<ExB: ExecutorBuilder> { /* private fields */ }
Expand description
The entry point of the crate, implementing the job scheduling logic
§Example
use captain_workflow_manager::{executor, Scheduler};
let executor = executor::SlurmExecutorBuilder { max_jobs: 10_000 };
let scheduler = Scheduler::new(executor);
scheduler.run(some_jobs)?;
Implementations§
Source§impl<ExB: ExecutorBuilder> Scheduler<ExB>
impl<ExB: ExecutorBuilder> Scheduler<ExB>
Sourcepub fn new(ex_builder: ExB) -> Self
pub fn new(ex_builder: ExB) -> Self
Creates a new scheduler objects, with the provided ExecutorBuilder
Executor builders can be found in the executor
module, or custom ones can be implemented.
Sourcepub fn run<J: JobUnit>(self, final_job_units: Vec<J>) -> Result<(), Error<J>>
pub fn run<J: JobUnit>(self, final_job_units: Vec<J>) -> Result<(), Error<J>>
Run each job in final_job_units
and its transitive dependencies.
A job won’t be run if its output file is already present. (Currently no finer dependency freshness management is attempted.) Moreover, dependencies of such jobs won’t be run either.
Auto Trait Implementations§
impl<ExB> Freeze for Scheduler<ExB>where
ExB: Freeze,
impl<ExB> RefUnwindSafe for Scheduler<ExB>where
ExB: RefUnwindSafe,
impl<ExB> Send for Scheduler<ExB>where
ExB: Send,
impl<ExB> Sync for Scheduler<ExB>where
ExB: Sync,
impl<ExB> Unpin for Scheduler<ExB>where
ExB: Unpin,
impl<ExB> UnwindSafe for Scheduler<ExB>where
ExB: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more