batch-processing 0.1.17

A batch library for processing a list of items in parallel
Documentation
#[cfg(test)]
mod job_test {
    use batch_processing::sync::job::job_builder::{JobBuilder, JobBuilderTrait};
    use batch_processing::sync::step::Runner;
    use batch_processing::sync::step::simple_step::{SimpleStepBuilder, SimpleStepBuilderTrait};
    use batch_processing::sync::step::step_builder::StepBuilderTrait;

    use crate::utils::log::enable_test_log;

    #[test]
    fn job_simple_step() {
        enable_test_log();
        let tasklet = move || {
            println!("Step 1");
        };
        let step1 = SimpleStepBuilder::get(String::from("step1"))
            .tasklet(Box::new(tasklet))
            .decider(Box::new(|| false))
        .build();
        let tasklet = move || {
            println!("Step 2");
        };
        let step2 = SimpleStepBuilder::get(String::from("step2")).throw_tolerant().tasklet(Box::new(tasklet)).build();

        let job = JobBuilder::get(String::from("sync-data"))
            .step(step1)
            .step(step2)
            .multi_threaded(4)
            .build();

        match job.run().status {
            Ok(_) => {
                println!("Job finished");
            },
            Err(_) => {
                println!("Job failed");
            }
        }
    }
}