/[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 2890 by torben, Sun Jan 31 21:56:30 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.FileHandler;  
 import java.util.logging.Logger;  
 import java.util.logging.SimpleFormatter;  
14    
15  import ags.utils.dataStructures.trees.thirdGenKD.KdTree;  import ags.utils.dataStructures.trees.thirdGenKD.KdTree;
16    import dk.daoas.adressevedligehold.ReloadHelper;
17  import dk.daoas.adressevedligehold.ServiceConfig;  import dk.daoas.adressevedligehold.ServiceConfig;
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.util.HttpUtil;  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;
37    
38    
39          String distributor;          String distributor;
40            int antalIkkeDaekkede = -1;
41            
42            AtomicInteger antalBeregnet = new AtomicInteger();
43    
44    
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 78  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    
                 int antalIkkeDaekkede = -1;  
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 144  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,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 159  public class AfstandAndenRuteTask extend Line 171  public class AfstandAndenRuteTask extend
171    
172                                  if (test_mode == false && this.isAborted() == false) {                                  if (test_mode == false && this.isAborted() == false) {
173                                          db.renameResultTables();                                          db.renameResultTables();
174                                            
175                                            ReloadHelper.triggerReload( "AfstandAndenRute/" + distributor );
176    
                                         String trigger_url = ServiceConfig.getInstance().trigger_url;  
   
                                         logger.info("Calling trigger URL");  
                                         String url = trigger_url + "&trigger=AfstandAndenRute/" + distributor;  
   
                                         HttpUtil.getContentString(url, 500);  
177    
178                                  } else {                                  } else {
179                                          logger.info( "Rename tables is disabled !!!" );                                          logger.info( "Rename tables is disabled !!!" );
# Line 173  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 184  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 200  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 236  public class AfstandAndenRuteTask extend Line 242  public class AfstandAndenRuteTask extend
242    
243          @Override          @Override
244          public String getDescription() {          public String getDescription() {
245                  return "Afstand anden rute";                  return "Afstand anden rute/" + distributor;
246          }          }
247    
248    
249    
250          @Override          @Override
251          public String getDetail() {          public String getDetail() {
252                  // TODO Auto-generated method stub                  if (isIncremental) {
253                  return null;                          return "Type: incremental";
254                    } else {
255                            return "Type: full";
256                    }
257          }          }
258    
259    
260    
261          @Override          @Override
262          public short getPercentCompleted() {          public double getPercentCompleted() {
263                  // TODO Auto-generated method stub                  return (antalBeregnet.get() / ((float)antalIkkeDaekkede)) * 100.0;
                 return 0;  
264          }          }
265  }  }

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

  ViewVC Help
Powered by ViewVC 1.1.20