--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/afstandandenrute/AfstandAndenRuteTask.java 2016/01/30 14:05:53 2878 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/afstandandenrute/AfstandAndenRuteTask.java 2016/02/12 22:30:30 2937 @@ -1,7 +1,5 @@ package dk.daoas.adressevedligehold.afstandandenrute; -import java.io.File; -import java.io.FileReader; import java.sql.Connection; import java.util.HashMap; import java.util.List; @@ -13,55 +11,59 @@ import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.atomic.AtomicInteger; -import java.util.logging.FileHandler; -import java.util.logging.Logger; -import java.util.logging.SimpleFormatter; import ags.utils.dataStructures.trees.thirdGenKD.KdTree; +import dk.daoas.adressevedligehold.ReloadHelper; import dk.daoas.adressevedligehold.ServiceConfig; import dk.daoas.adressevedligehold.beans.Address; import dk.daoas.adressevedligehold.db.DBConnection; import dk.daoas.adressevedligehold.tasks.Task; -import dk.daoas.adressevedligehold.util.HttpUtil; +import dk.daoas.adressevedligehold.tasks.TaskLogger; public class AfstandAndenRuteTask extends Task { - final Logger logger = Logger.getLogger( AfstandAndenRuteTask.class.toString() ); + private TaskLogger logger = TaskLogger.getInstance(); - final boolean verbose = false;// + final static boolean VERBOSE = false;// static boolean test_mode; String distributor; + int antalIkkeDaekkede = -1; + + AtomicInteger antalBeregnet = new AtomicInteger(); ThreadPoolExecutor threadPool; + boolean isIncremental; - public AfstandAndenRuteTask(String distributor) { + public AfstandAndenRuteTask(String distributor, String type) { this.distributor = distributor; + + type = type.toUpperCase(); + switch(type) { + case "FULL": + isIncremental = false; + break; + case "INCREMENTAL": + isIncremental = true; + break; + default: + throw new RuntimeException("Unknown type" + type); + } } @Override protected void taskRun() throws Exception { - - - - - //Setup j.u.l Logger - Logger root = Logger.getLogger(""); - FileHandler fhandler = new FileHandler("fulddaekning.log"); // Ingen max størrelse, ingen rotation og ingen append - fhandler.setFormatter( new SimpleFormatter() ); - root.addHandler( fhandler ); - - + Constants.init(distributor); Constants consts = Constants.getInstance(); @@ -80,11 +82,15 @@ } logger.info("Starting with MAX_WORKERS:" + max_workers); setupThreadPool(max_workers); + + logger.info("Starting with INCREMENTAL:" + isIncremental); + - int antalIkkeDaekkede = -1; try (Connection conn = DBConnection.getConnection() ) { - Database db = new Database(conn); + Database db = new Database(conn, isIncremental); + + db.prepareIncrementalSearch(); Queue
ikkeDaekkede = db.hentAlleIkkedaekkedeAdresser(consts.getMinPostnr(), consts.getMaxPostnr() ); antalIkkeDaekkede = ikkeDaekkede.size(); @@ -146,7 +152,7 @@ CyclicBarrier barrier = new CyclicBarrier(max_workers + 1); for (int i=0; i