From c6bfed9be0b131abd29f499c279d9f1ec78c2295 Mon Sep 17 00:00:00 2001 From: Simon Sadedin Date: Fri, 23 Aug 2024 19:44:25 +1000 Subject: [PATCH] support to delay pipeline start using argument --- src/main/groovy/bpipe/Pipeline.groovy | 5 +++++ src/main/groovy/bpipe/Runner.groovy | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/src/main/groovy/bpipe/Pipeline.groovy b/src/main/groovy/bpipe/Pipeline.groovy index 8447e54a..945fb4e4 100755 --- a/src/main/groovy/bpipe/Pipeline.groovy +++ b/src/main/groovy/bpipe/Pipeline.groovy @@ -857,6 +857,11 @@ public class Pipeline implements ResourceRequestor { Runner.binding.readOnly = true } + if(Runner.runDelayMs > 0L) { + println "\nMSG: Waiting ${Runner.runDelayMs}ms before starting ...\n" + Thread.sleep(Runner.runDelayMs) + } + runSegment(resolvedInputFiles, constructedPipeline) if(failed) { diff --git a/src/main/groovy/bpipe/Runner.groovy b/src/main/groovy/bpipe/Runner.groovy index f6b46916..b3d3f8e4 100755 --- a/src/main/groovy/bpipe/Runner.groovy +++ b/src/main/groovy/bpipe/Runner.groovy @@ -143,6 +143,8 @@ class Runner { public static boolean cleanupRequired = false + public static long runDelayMs = 0L + /** * Lock used to ensure only one instance of bpipe runs in a directory at a time **/ @@ -513,6 +515,11 @@ class Runner { println "\n" + " ( ${ansi().fgGreen()}Running in Dev mode for Stage ${ansi().fgBlue()}${opts['dev']}${ansi().fgDefault()} ) ".center((int)Config.config.columns, "=") + "\n" Config.config.devAt = ((String)opts['dev']).split(",") } + + + if(opts['delay']) { + runDelayMs = Integer.parseInt((String)opts['delay']) * 1000L + } initThreads*.join(20000) @@ -586,6 +593,7 @@ class Runner { cli.with { h longOpt:'help', 'usage information' d longOpt:'dir', 'output directory', args:1 + delay 'Delay in seconds before starting pipeline', longOpt: 'delay', args:1 a longOpt: 'autoarchive', 'clean up all internal files after run into given archive', args:1 t longOpt:'test', 'test mode' f longOpt: 'filename', 'output file name of report', args:1