--- dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/Lookup.java 2014/04/30 13:34:24 2148 +++ dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/Lookup.java 2014/12/10 09:50:33 2241 @@ -1,9 +1,7 @@ package dk.daoas.fulddaekning; -import java.io.File; -import java.io.FileReader; import java.util.Map; -import java.util.Properties; +import java.util.Queue; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; import java.util.logging.Logger; @@ -11,39 +9,67 @@ import dk.daoas.fulddaekning.BoundingBox.BoundingBoxException; public class Lookup { - static int max_workers; - static boolean verbose; + - static Properties conf; - static Logger logger = Logger.getLogger( Lookup.class.toString() ); - + final static Logger logger = Logger.getLogger( Lookup.class.toString() ); + + String postnr; Database db; - WorkSet workset; + + Adresse daekkedeAdresser[]; + Queue queue; Map workers = new ConcurrentHashMap(); + + - public Lookup(WorkSet workset, Database db) { + public Lookup(String postnr, Database db) { + this.postnr = postnr; this.db = db; - this.workset = workset; } - + public void doLookup() throws BoundingBoxException { - logger.info("Starting for postnr=" + workset.postnr); + logger.info("Starting for postnr=" + postnr); + Statistik stat = new Statistik(); + long start1 = System.currentTimeMillis(); long start2 = 0; try { - - logger.info("Starter beregning for " + workset.postnr); + + 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(); + + logger.info("Bbox=" + bbox); + bbox.adjustToMargin(); + logger.info("Bbox Adjusted=" + bbox); + + logger.info("Henter daekkede adresser i " + postnr); + daekkedeAdresser = db.hentDaekkedeAdresser(bbox); + + stat.postnr = postnr; + stat.antalDaekkede = daekkedeAdresser.length; + stat.antalIkkeDaekkede = queue.size(); + stat.totalDataset = stat.antalDaekkede * stat.antalIkkeDaekkede; + + + logger.info("Starter beregning for " + postnr); start2 = System.currentTimeMillis(); - for (int i =0; i postnumre = db.hentPostnumre(); - - for(Integer postnr : postnumre) { - Lookup lookup = new Lookup(postnr, db); - lookup.doLookup(); - }*/ - - long now = System.currentTimeMillis(); - - logger.info("Fuld load done : " + (now-start) ); - - - //Lookup lookup = new Lookup(7400, db); - //lookup.doLookup(); + public Queue getQueue() { + return queue; } - - + }