--- dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/Lookup.java 2014/09/12 06:42:29 2214 +++ dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/Lookup.java 2014/12/10 09:50:33 2241 @@ -1,32 +1,20 @@ package dk.daoas.fulddaekning; -import java.io.File; -import java.io.FileReader; -import java.util.List; import java.util.Map; import java.util.Queue; import java.util.concurrent.ConcurrentHashMap; -import java.util.logging.FileHandler; import java.util.logging.Level; import java.util.logging.Logger; -import java.util.logging.SimpleFormatter; import dk.daoas.fulddaekning.BoundingBox.BoundingBoxException; public class Lookup { - static final String CONFIG_FILENAME = "fulddaekning.properties"; - - static int max_workers; - static boolean verbose; - static boolean rename_tables; - static String distributor; - static SafeProperties conf; - static Logger logger = Logger.getLogger( Lookup.class.toString() ); + final static Logger logger = Logger.getLogger( Lookup.class.toString() ); - int postnr; + String postnr; Database db; Adresse daekkedeAdresser[]; @@ -35,35 +23,15 @@ Map workers = new ConcurrentHashMap(); - static Statistik flestDaekkede = new Statistik(); - static Statistik flestIkkeDaekkede = new Statistik(); - - - static class Statistik { - int postnr; - int antalDaekkede = 0; - int antalIkkeDaekkede = 0; - - @Override - public String toString() { - return "postnr=" + postnr + " antalIkkeDaekkede=" + antalIkkeDaekkede + " antalDaekkede=" + antalDaekkede; - } - } - + + - public Lookup(int postnr, Database db) { + public Lookup(String postnr, Database db) { this.postnr = postnr; this.db = db; } - public static void saveStatistics(Statistik stat) { - if (stat.antalDaekkede > flestDaekkede.antalDaekkede) { - flestDaekkede = stat; - } - if (stat.antalIkkeDaekkede > flestIkkeDaekkede.antalIkkeDaekkede) { - flestIkkeDaekkede = stat; - } - } + public void doLookup() throws BoundingBoxException { logger.info("Starting for postnr=" + postnr); @@ -74,6 +42,14 @@ long start2 = 0; try { + + logger.info("Henter _ikke_ daekkede adresser i " + postnr); + queue = db.hentIkkedaekkedeAdresser(postnr); + if (queue.size() == 0) { + logger.info("Fandt ikke nogen _ikke_ daekkede adresser i " + postnr); + return; + } + BoundingBox bbox = db.getBoundingbox(postnr); bbox.validateBbox(); @@ -84,20 +60,16 @@ logger.info("Henter daekkede adresser i " + postnr); daekkedeAdresser = db.hentDaekkedeAdresser(bbox); - logger.info("Henter _ikke_ daekkede adresser i " + postnr); - queue = db.hentIkkedaekkedeAdresser(postnr); - stat.postnr = postnr; stat.antalDaekkede = daekkedeAdresser.length; stat.antalIkkeDaekkede = queue.size(); - - saveStatistics(stat); - + stat.totalDataset = stat.antalDaekkede * stat.antalIkkeDaekkede; + logger.info("Starter beregning for " + postnr); start2 = System.currentTimeMillis(); - for (int i =0; i postnumre = db.hentPostnumre(); - - // Først validerer vi BBox på alle postnummre, for at undgå fuldt stop midt i beregningen - for(Integer postnr : postnumre) { // - logger.info("Validerer BBox for " + postnr); - BoundingBox bbox = db.getBoundingbox(postnr); - bbox.validateBbox(); - } - - - //pre-check er ok - reset tmp tabel og start søgningen - db.resetResultTable(); - - for(Integer postnr : postnumre) { - Lookup lookup = new Lookup(postnr, db); - lookup.doLookup(); - } - - if (rename_tables) { - db.renameResultTables(); - } else { - logger.info( "Rename tables is disabled !!!" ); - } - - long now = System.currentTimeMillis(); - - logger.info("Flest Ikke-dækkede, " + flestIkkeDaekkede); - logger.info("Flest Dækkede, " + flestDaekkede); - logger.info("Fuld load done : " + (now-start) ); - - - /* - /// Test - db.resetResultTable(); - Lookup lookup = new Lookup(2750, db); - lookup.doLookup(); - long now = System.currentTimeMillis(); - logger.info("Fuld load done : " + (now-start) );*/ - } - }