diff --git a/pom.xml b/pom.xml
index 6bc198c..db931e6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,6 +16,7 @@
UTF-8
1.8
1.8
+ 2.19.0
@@ -28,12 +29,12 @@
org.apache.logging.log4j
log4j-api
- 2.13.0
+ ${ver-log4j2}
org.apache.logging.log4j
log4j-core
- 2.13.0
+ ${ver-log4j2}
commons-cli
@@ -61,6 +62,12 @@
RELEASE
compile
+
+ org.apache.logging.log4j
+ log4j-slf4j-impl
+ ${ver-log4j2}
+
+
diff --git a/src/main/java/org/leolo/nrdatad/App.java b/src/main/java/org/leolo/nrdatad/App.java
index 4ccbceb..4665cb3 100644
--- a/src/main/java/org/leolo/nrdatad/App.java
+++ b/src/main/java/org/leolo/nrdatad/App.java
@@ -5,8 +5,8 @@ import org.apache.commons.cli.*;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.leolo.nrdatad.db.DatabaseManager;
-import org.quartz.Scheduler;
-import org.quartz.SchedulerException;
+import org.leolo.nrdatad.org.leolo.nrdatad.cron.ReferenceDataJob;
+import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.io.IOException;
@@ -90,12 +90,21 @@ public class App {
return;
}
loadCronJob();
+ while(true);
}
private void loadCronJob() {
log.atDebug().log("Start loading cron jobs");
try {
scheduler = StdSchedulerFactory.getDefaultScheduler();
+ scheduler.start();
+ if(ConfigurationManager.getInstance().getProperty(Constants.Configuration.ALWAYS_RUN_REF_DATA,"").equals("true")){
+ log.atInfo().log("Loading Reference data now");
+ scheduler.scheduleJob(
+ JobBuilder.newJob(ReferenceDataJob.class).withIdentity("J-OF-"+Constants.CronJob.REFERENCE_DATA).build(),
+ TriggerBuilder.newTrigger().withIdentity("T-OF-"+Constants.CronJob.REFERENCE_DATA).startAt(DateBuilder.evenSecondDateAfterNow()).build()
+ );
+ }
} catch (SchedulerException e) {
log.atFatal().withThrowable(e).log("Unable to create cron jobs");
}
diff --git a/src/main/java/org/leolo/nrdatad/Constants.java b/src/main/java/org/leolo/nrdatad/Constants.java
new file mode 100644
index 0000000..c955249
--- /dev/null
+++ b/src/main/java/org/leolo/nrdatad/Constants.java
@@ -0,0 +1,16 @@
+package org.leolo.nrdatad;
+
+public final class Constants {
+ public static class Metadata{
+ public static final String LAST_LTP = "01-last-ltp-time";
+ }
+
+ public static class CronJob{
+ public static final String REFERENCE_DATA = "refd";
+ }
+
+ public static class Configuration {
+ public static final String ALWAYS_RUN_LTP = "cron.ltp.always";
+ public static final String ALWAYS_RUN_REF_DATA = "cron.ref.always";
+ }
+}
diff --git a/src/main/java/org/leolo/nrdatad/org/leolo/nrdatad/cron/ReferenceDataJob.java b/src/main/java/org/leolo/nrdatad/org/leolo/nrdatad/cron/ReferenceDataJob.java
new file mode 100644
index 0000000..31ff47f
--- /dev/null
+++ b/src/main/java/org/leolo/nrdatad/org/leolo/nrdatad/cron/ReferenceDataJob.java
@@ -0,0 +1,17 @@
+package org.leolo.nrdatad.org.leolo.nrdatad.cron;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
+public class ReferenceDataJob implements Job {
+
+ Logger log = LogManager.getLogger();
+
+ @Override
+ public void execute(JobExecutionContext context) throws JobExecutionException {
+ log.atInfo().log("Load reference data triggered at {}", context.getFireTime());
+ }
+}