NAME

NBI::Pipeline - Ordered list of NBI::Job objects with dependency wiring

VERSION

version 0.19.1

SYNOPSIS

use NBI::Pipeline;

my $pipeline = NBI::Pipeline->new(jobs => [$job1, $job2]);

# Wire job2 to run only after job1 succeeds
$job2->{_nbi_depends_on} = $job1;

my @ids = $pipeline->run();   # submits in order, injects afterok deps
$pipeline->print_summary();

NAME

NBI::Pipeline - Ordered list of NBI::Job objects with dependency wiring

METHODS

new(jobs => \@jobs)

Construct a pipeline. Each element must be an NBI::Job instance.

add_job($job)

Append a job to the pipeline.

run()

Submit all jobs in order. Returns a list of Slurm job IDs. Jobs with _nbi_depends_on set get an afterok dependency injected.

Print a human-readable dependency graph to STDOUT.

AUTHOR

Andrea Telatin <proch@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2023-2025 by Andrea Telatin.

This is free software, licensed under:

The MIT (X11) License