Browse Source

Triggering the ReferenceDataJob if enabled in config

develop
LO Kam Tao Leo 3 years ago
parent
commit
260a5abbda
  1. 11
      pom.xml
  2. 13
      src/main/java/org/leolo/nrdatad/App.java
  3. 16
      src/main/java/org/leolo/nrdatad/Constants.java
  4. 17
      src/main/java/org/leolo/nrdatad/org/leolo/nrdatad/cron/ReferenceDataJob.java

11
pom.xml

@ -16,6 +16,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<ver-log4j2>2.19.0</ver-log4j2>
</properties>
<dependencies>
@ -28,12 +29,12 @@
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.13.0</version>
<version>${ver-log4j2}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.13.0</version>
<version>${ver-log4j2}</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
@ -61,6 +62,12 @@
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>${ver-log4j2}</version>
</dependency>
</dependencies>
<build>

13
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");
}

16
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";
}
}

17
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());
}
}
Loading…
Cancel
Save