/[projects]/dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/LookupMain.java
ViewVC logotype

Diff of /dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/LookupMain.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2259 by torben, Mon Feb 9 13:21:39 2015 UTC revision 2328 by torben, Thu Feb 19 13:39:33 2015 UTC
# Line 2  package dk.daoas.fulddaekning; Line 2  package dk.daoas.fulddaekning;
2    
3  import java.io.File;  import java.io.File;
4  import java.io.FileReader;  import java.io.FileReader;
5  import java.util.List;  import java.util.Set;
6    import java.util.concurrent.Executors;
7    import java.util.concurrent.ThreadFactory;
8    import java.util.concurrent.ThreadPoolExecutor;
9  import java.util.logging.FileHandler;  import java.util.logging.FileHandler;
10  import java.util.logging.Logger;  import java.util.logging.Logger;
11  import java.util.logging.SimpleFormatter;  import java.util.logging.SimpleFormatter;
 import java.util.concurrent.*;  
12    
13  public class LookupMain {  public class LookupMain {
14    
# Line 34  public class LookupMain { Line 36  public class LookupMain {
36          static ThreadPoolExecutor threadPool;          static ThreadPoolExecutor threadPool;
37    
38          private static void setupThreadPool() {          private static void setupThreadPool() {
39                  threadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(max_workers, new ThreadFactory() {                  threadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(max_workers, new WorkerThreadFactory() );
                         @Override  
                         public Thread newThread(Runnable r) {  
                                 return new Thread(r, "lookupWorker");  
                         }        
                 });  
40          }          }
41                    
42                    
# Line 90  public class LookupMain { Line 87  public class LookupMain {
87                  Constants consts = Constants.getInstance();                  Constants consts = Constants.getInstance();
88                                    
89                  Database db = new Database(conf);                  Database db = new Database(conf);
90                                    db.hentAlleIkkedaekkedeAdresser(consts.getMinPostnr(), consts.getMaxPostnr() );
                   
91    
92                                    
93                  boolean testRun= false;                  boolean testRun= false;
# Line 102  public class LookupMain { Line 98  public class LookupMain {
98                  if (testRun == false) {                  if (testRun == false) {
99                                    
100                          logger.info("Finder postnumre");                          logger.info("Finder postnumre");
101                          List<String> postnumre = db.hentPostnumre();                          Set<Integer> postnumre = db.hentPostnumreCache();
102                                                    
103                          // Først validerer vi BBox på alle postnummre, for at undgå fuldt stop midt i beregningen                          // Først validerer vi BBox på alle postnummre, for at undgå fuldt stop midt i beregningen
104                          for(String postnr : postnumre) { //                          for(int postnr : postnumre) { //
105                                  logger.info("Validerer BBox for " + postnr);                                  logger.info("Validerer BBox for " + postnr);
106                                  BoundingBox bbox = db.getBoundingbox(postnr);                                  BoundingBox bbox = db.getBoundingbox(postnr);
107                                  bbox.validateBbox();                                  bbox.validateBbox();
108                          }                          }
109                                                    
110                          if (consts.doExtendedLookup()) {  
111                                  logger.info("Henter alle daekkede adresser");                          logger.info("Henter alle daekkede adresser");
112                                  alleDaekkedeAdresser = db.hentAlleDaekkedeAdresser();                          alleDaekkedeAdresser = db.hentAlleDaekkedeAdresser();
113                                  logger.info( "AlleDaekkedeAdresser.length=" + alleDaekkedeAdresser.length);                          logger.info( "AlleDaekkedeAdresser.length=" + alleDaekkedeAdresser.length);                    
                         }  
                           
114                                                    
115                          //pre-check er ok - reset tmp tabel og start søgningen                          //pre-check er ok - reset tmp tabel og start søgningen
116                          db.resetResultTable();                          db.resetResultTable();
117                                                    
118                          for(String postnr : postnumre) {                          for(int postnr : postnumre) {
119                                  Lookup lookup = new Lookup(postnr, db, threadPool);                                  Lookup lookup = new Lookup(postnr, db, threadPool);
120                                  lookup.doLookup();                                                        lookup.doLookup();                      
121                          }                          }
# Line 143  public class LookupMain { Line 137  public class LookupMain {
137                                  logger.info( "AlleDaekkedeAdresser.length=" + alleDaekkedeAdresser.length);                                  logger.info( "AlleDaekkedeAdresser.length=" + alleDaekkedeAdresser.length);
138                          }                          }
139                                                    
140                          Lookup lookup = new Lookup("458x", db, threadPool);                          Lookup lookup = new Lookup(2700, db, threadPool);
141                          lookup.doLookup();                                                                                        lookup.doLookup();                                                              
142                  }                  }
143    
144                    threadPool.shutdown();
145                                    
146                  long now = System.currentTimeMillis();                  long now = System.currentTimeMillis();
147                  long elapsed = now - start ;                  long elapsed = now - start ;
# Line 182  public class LookupMain { Line 178  public class LookupMain {
178                  int hours   = (int) ((milliseconds / (1000*60*60)) % 24);                  int hours   = (int) ((milliseconds / (1000*60*60)) % 24);
179                                    
180                  return String.format("%02d:%02d:%02d.%03d", hours, minutes, seconds, mseconds);                  return String.format("%02d:%02d:%02d.%03d", hours, minutes, seconds, mseconds);
181          }                }
182            
183            static class WorkerThreadFactory implements ThreadFactory {
184                    int count = 0;
185    
186                    @Override
187                    public Thread newThread(Runnable r) {
188                            return new Thread(r, "lookupWorker/" + count++);
189                    }      
190            }
191  }  }

Legend:
Removed from v.2259  
changed lines
  Added in v.2328

  ViewVC Help
Powered by ViewVC 1.1.20