You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
1.8 KiB

package org.leolo.rail;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.UnknownHostException;
import org.apache.activemq.transport.stomp.StompConnection;
import org.apache.activemq.transport.stomp.StompFrame;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
public class NRDataDamon {
private Logger log = LogManager.getLogger(getClass());
NetowrkRailProcessingThread nrpt;
public static void main(String [] args) {
Logger log = LogManager.getLogger(NRDataDamon.class);
ConfigurationManager.getInstance().forEach((k,v)->{
if(k.toString().endsWith(".pwd")) {
log.info("{} : {}", k , "****");
}else {
log.info("{} : {}", k, v);
}
});
log.info("Opening database connection");
DatabaseManager.getInstance().testPool();
log.info("Database connected");
try {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
NRDataDamon ndd = new NRDataDamon();
try {
ndd.init();
ndd.run();
} catch (Exception e) {
log.error(e.getMessage(), e);
System.exit(-1);
}
}
public void init() throws Exception {
nrpt = new NetowrkRailProcessingThread();
nrpt.init();
nrpt.start();
}
public void run() throws Exception{
while(true) {
if(!nrpt.isAlive()) {
log.warn("Network Rail processing thread died. Restarting...");
nrpt = new NetowrkRailProcessingThread();
nrpt.init();
nrpt.start();
}
try {
Thread.sleep(2500);
}catch(InterruptedException e) {
log.error(e.getMessage(), e);
}
}
}
}