/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/afstandandenrute/AfstandAndenRuteTask.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/afstandandenrute/AfstandAndenRuteTask.java

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

revision 2898 by torben, Mon Feb 1 09:09:31 2016 UTC revision 2954 by torben, Tue Feb 16 13:15:25 2016 UTC
# Line 11  import java.util.concurrent.Executors; Line 11  import java.util.concurrent.Executors;
11  import java.util.concurrent.ThreadFactory;  import java.util.concurrent.ThreadFactory;
12  import java.util.concurrent.ThreadPoolExecutor;  import java.util.concurrent.ThreadPoolExecutor;
13  import java.util.concurrent.atomic.AtomicInteger;  import java.util.concurrent.atomic.AtomicInteger;
 import java.util.logging.Logger;  
14    
15  import ags.utils.dataStructures.trees.thirdGenKD.KdTree;  import ags.utils.dataStructures.trees.thirdGenKD.KdTree;
16  import dk.daoas.adressevedligehold.ReloadHelper;  import dk.daoas.adressevedligehold.ReloadHelper;
# Line 19  import dk.daoas.adressevedligehold.Servi Line 18  import dk.daoas.adressevedligehold.Servi
18  import dk.daoas.adressevedligehold.beans.Address;  import dk.daoas.adressevedligehold.beans.Address;
19  import dk.daoas.adressevedligehold.db.DBConnection;  import dk.daoas.adressevedligehold.db.DBConnection;
20  import dk.daoas.adressevedligehold.tasks.Task;  import dk.daoas.adressevedligehold.tasks.Task;
21    import dk.daoas.adressevedligehold.tasks.TaskLogger;
22    
23    
24    
25  public class AfstandAndenRuteTask extends Task {  public class AfstandAndenRuteTask extends Task {
26            
27    
28          final Logger logger = Logger.getLogger( AfstandAndenRuteTask.class.toString() );          private TaskLogger logger = TaskLogger.getInstance();
29    
30          final boolean verbose = false;//          final static boolean VERBOSE = false;//
31            
32            public final static String INCREMENTAL = "INCREMENTAL";
33            public final static String FULL = "FULL";
34    
35    
36          static boolean test_mode;          static boolean test_mode;
# Line 41  public class AfstandAndenRuteTask extend Line 45  public class AfstandAndenRuteTask extend
45    
46          ThreadPoolExecutor threadPool;          ThreadPoolExecutor threadPool;
47    
48            boolean isIncremental;
49    
50    
51          public AfstandAndenRuteTask(String distributor) {          public AfstandAndenRuteTask(String distributor, String type) {
52                  this.distributor = distributor;                  this.distributor = distributor;
53                    
54                    type = type.toUpperCase();
55                    switch(type) {
56                    case FULL:
57                            isIncremental = false;
58                            break;
59                    case INCREMENTAL:
60                            isIncremental = true;
61                            break;
62                    default:
63                            throw new RuntimeException("Unknown type" + type);                      
64                    }
65          }          }
66    
67    
68          @Override          @Override
69          protected void taskRun() throws Exception {          protected void taskRun() throws Exception {
70                    
   
   
   
                 //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 );  
   
   
71    
72                  Constants.init(distributor);                  Constants.init(distributor);
73                  Constants consts = Constants.getInstance();                  Constants consts = Constants.getInstance();
# Line 79  public class AfstandAndenRuteTask extend Line 86  public class AfstandAndenRuteTask extend
86                  }                  }
87                  logger.info("Starting with MAX_WORKERS:" + max_workers);                          logger.info("Starting with MAX_WORKERS:" + max_workers);        
88                  setupThreadPool(max_workers);                  setupThreadPool(max_workers);
89                    
90                    logger.info("Starting with INCREMENTAL:" + isIncremental);
91    
92    
93    
94                  try (Connection conn = DBConnection.getConnection() ) {                  try (Connection conn = DBConnection.getConnection() ) {
95                          Database db = new Database(conn);                          DatabaseRouteDistance db = new DatabaseRouteDistance(conn, isIncremental);
96                            
97                            db.prepareIncrementalSearch();
98    
99                          Queue<Address> ikkeDaekkede = db.hentAlleIkkedaekkedeAdresser(consts.getMinPostnr(), consts.getMaxPostnr() );                          Queue<Address> ikkeDaekkede = db.hentAlleIkkedaekkedeAdresser(consts.getMinPostnr(), consts.getMaxPostnr() );
100                          antalIkkeDaekkede = ikkeDaekkede.size();                          antalIkkeDaekkede = ikkeDaekkede.size();
# Line 145  public class AfstandAndenRuteTask extend Line 156  public class AfstandAndenRuteTask extend
156                                  CyclicBarrier barrier = new CyclicBarrier(max_workers + 1);                                  CyclicBarrier barrier = new CyclicBarrier(max_workers + 1);
157    
158                                  for (int i=0; i<max_workers; i++) {                                  for (int i=0; i<max_workers; i++) {
159                                          LookupWorker worker = new LookupWorker(i, this, barrier, ikkeDaekkede, hoTrees,antalFundne,antalBeregnet,db,verbose,consts);                                          LookupWorker worker = new LookupWorker(i, this, barrier, ikkeDaekkede, hoTrees,antalFundne,antalBeregnet,db,VERBOSE,consts);
160                                          threadPool.submit( worker );                                          threadPool.submit( worker );
161                                  }                                  }
162    
# Line 170  public class AfstandAndenRuteTask extend Line 181  public class AfstandAndenRuteTask extend
181    
182    
183    
184                          } else {                          } /*else {
185                                  /// Test                                  /// Test
186                                  /*                                  
187                                  db.resetResultTable();                                  db.resetResultTable();
188    
189    
# Line 181  public class AfstandAndenRuteTask extend Line 192  public class AfstandAndenRuteTask extend
192    
193                                  short post = (short) 2700;                                                        short post = (short) 2700;                      
194                                  Lookup lookup = new Lookup(post, db, threadPool);                                  Lookup lookup = new Lookup(post, db, threadPool);
195                                  lookup.doLookup();*/                                                                                              lookup.doLookup();                                                              
196                          }                          } */
197    
198    
199                          long now = System.currentTimeMillis();                          long now = System.currentTimeMillis();
# Line 197  public class AfstandAndenRuteTask extend Line 208  public class AfstandAndenRuteTask extend
208                          logger.info("Heraf, antal fundne : " + antalFundne );                          logger.info("Heraf, antal fundne : " + antalFundne );
209    
210                          logger.info( String.format("Fandt adresser til : %.2f %%", (antalFundne.get() *100.0)/antalIkkeDaekkede ) );                          logger.info( String.format("Fandt adresser til : %.2f %%", (antalFundne.get() *100.0)/antalIkkeDaekkede ) );
                         //logger.info("Fandt adresser til : " + (antalFundne*100.0)/ikkeDaekkede.length + "%" );  
   
211                  }                  }
212          }          }
213    
# Line 240  public class AfstandAndenRuteTask extend Line 249  public class AfstandAndenRuteTask extend
249    
250          @Override          @Override
251          public String getDetail() {          public String getDetail() {
252                  // TODO Auto-generated method stub                  if (isIncremental) {
253                  return "";                          return "Type: incremental";
254                    } else {
255                            return "Type: full";
256                    }
257          }          }
258    
259    

Legend:
Removed from v.2898  
changed lines
  Added in v.2954

  ViewVC Help
Powered by ViewVC 1.1.20