Quellcode durchsuchen

Added an option to execute the program immediately.

Lukas Cerny vor 4 Jahren
Ursprung
Commit
44caa9e21d

+ 9 - 6
src/main/java/cz/senslog/watchdog/app/Application.java

@@ -11,7 +11,6 @@ import org.apache.logging.log4j.Logger;
 
 import java.io.IOException;
 import java.time.LocalDateTime;
-import java.time.LocalTime;
 
 public class Application extends Thread {
 
@@ -56,14 +55,18 @@ public class Application extends Thread {
         MessageBroker messageBroker = MessageBroker.create(config.getMessageBrokerConfig());
         Watcher watcher = Watcher.create(config.getWatchingObjectsConfig(), dataProvider, messageBroker);
 
-        int period = config.getWatchingObjectsConfig().getMinInterval();
-        LocalDateTime startAtTime = DateTrunc.trunc(LocalDateTime.now(), period).plusSeconds(period);
+        if (params.isExecuteImmediately()) {
+            watcher.check();
+        } else {
+            int period = config.getWatchingObjectsConfig().getMinInterval();
+            LocalDateTime startAtTime = DateTrunc.trunc(LocalDateTime.now(), period).plusSeconds(period);
 
-        Scheduler scheduler = Scheduler.createBuilder()
+            Scheduler scheduler = Scheduler.createBuilder()
                     .addTask(watcher::check, period, startAtTime)
 //                    .addTask(watcher::check, period)
-                .build();
+                    .build();
 
-        scheduler.start();
+            scheduler.start();
+        }
     }
 }

+ 7 - 0
src/main/java/cz/senslog/watchdog/app/Parameters.java

@@ -60,6 +60,9 @@ public final class Parameters {
     @Parameter(names = {"-cf", "-config-file"}, description = "Configuration file in .yaml format.")
     private String configFileName;
 
+    @Parameter(names = {"-ei", "-execute-immediately"}, description = "Execute the application immediately and only once.")
+    private boolean executeImmediately = false;
+
     /**
      * Returns name of the configuration file.
      * @return string name.
@@ -72,6 +75,10 @@ public final class Parameters {
         return help;
     }
 
+    public boolean isExecuteImmediately() {
+        return executeImmediately;
+    }
+
     public void printHelp() {
         jCommander.usage();
     }