From f326f498917333e846ffa4ecc21747745f6bff09 Mon Sep 17 00:00:00 2001 From: LO Kam Tao Leo Date: Wed, 2 Nov 2022 15:56:08 +0000 Subject: [PATCH] Skeleton for importing SCHEDULE feed --- src/main/java/org/leolo/nrdatad/App.java | 8 ++++++++ src/main/java/org/leolo/nrdatad/Constants.java | 2 ++ .../java/org/leolo/nrdatad/cron/ScheduleImportJob.java | 15 +++++++++++++++ 3 files changed, 25 insertions(+) create mode 100644 src/main/java/org/leolo/nrdatad/cron/ScheduleImportJob.java diff --git a/src/main/java/org/leolo/nrdatad/App.java b/src/main/java/org/leolo/nrdatad/App.java index 0138c4b..61fd2f5 100644 --- a/src/main/java/org/leolo/nrdatad/App.java +++ b/src/main/java/org/leolo/nrdatad/App.java @@ -4,6 +4,7 @@ package org.leolo.nrdatad; import org.apache.commons.cli.*; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.leolo.nrdatad.cron.ScheduleImportJob; import org.leolo.nrdatad.db.CorpusDao; import org.leolo.nrdatad.db.DatabaseManager; import org.leolo.nrdatad.cron.ReferenceDataJob; @@ -132,6 +133,13 @@ public class App { TriggerBuilder.newTrigger().withIdentity("T-CW-"+Constants.CronJob.REFERENCE_DATA) .withSchedule(CronScheduleBuilder.cronSchedule("* 10 1 ? * 1")).build() ); + if(ConfigurationManager.getInstance().getProperty(Constants.Configuration.ALWAYS_RUN_LTP,"").equals("true")){ + log.atInfo().log("Loading Schedule data now"); + scheduler.scheduleJob( + JobBuilder.newJob(ScheduleImportJob.class).withIdentity("J-OF-"+Constants.CronJob.SCHEDULE_IMPORT).build(), + TriggerBuilder.newTrigger().withIdentity("T-OF-"+Constants.CronJob.SCHEDULE_IMPORT).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 index a129d2a..62a507d 100644 --- a/src/main/java/org/leolo/nrdatad/Constants.java +++ b/src/main/java/org/leolo/nrdatad/Constants.java @@ -7,6 +7,7 @@ public final class Constants { public static class CronJob{ public static final String REFERENCE_DATA = "refd"; + public static final String SCHEDULE_IMPORT = "scji"; } public static class Configuration { @@ -19,5 +20,6 @@ public final class Constants { public static class NetworkRailURI{ public static final String CORPUS_URL = "https://datafeeds.networkrail.co.uk/ntrod/SupportingFileAuthenticate?type=CORPUS"; public static final String SMART_URL = "https://datafeeds.networkrail.co.uk/ntrod/SupportingFileAuthenticate?type=SMART"; + public static final String SCHEDULE_URL = "https://datafeeds.networkrail.co.uk/ntrod/CifFileAuthenticate?type=CIF_ALL_FULL_DAILY&day=toc-full"; } } diff --git a/src/main/java/org/leolo/nrdatad/cron/ScheduleImportJob.java b/src/main/java/org/leolo/nrdatad/cron/ScheduleImportJob.java new file mode 100644 index 0000000..293fcd2 --- /dev/null +++ b/src/main/java/org/leolo/nrdatad/cron/ScheduleImportJob.java @@ -0,0 +1,15 @@ +package 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 ScheduleImportJob implements Job { + Logger log = LogManager.getLogger(); + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + log.atInfo().log("Loading schedule from SCHEDULE stream"); + } +}