/[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 2878 by torben, Sat Jan 30 14:05:53 2016 UTC revision 2927 by torben, Fri Feb 5 11:01:48 2016 UTC
# Line 1  Line 1 
1  package dk.daoas.adressevedligehold.afstandandenrute;  package dk.daoas.adressevedligehold.afstandandenrute;
2    
 import java.io.File;  
 import java.io.FileReader;  
3  import java.sql.Connection;  import java.sql.Connection;
4  import java.util.HashMap;  import java.util.HashMap;
5  import java.util.List;  import java.util.List;
# Line 13  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          final Logger logger = Logger.getLogger( AfstandAndenRuteTask.class.toString() );          private TaskLogger logger = TaskLogger.getInstance();
28    
29          final boolean verbose = false;//          final static boolean VERBOSE = false;//
30    
31    
32          static boolean test_mode;          static boolean test_mode;
33    
34    
35          String distributor;          String distributor;
36            int antalIkkeDaekkede = -1;
37            
38            AtomicInteger antalBeregnet = new AtomicInteger();
39    
40    
41    
42          ThreadPoolExecutor threadPool;          ThreadPoolExecutor threadPool;
43    
44            boolean isIncremental;
45            String type;
46    
47    
48          public AfstandAndenRuteTask(String distributor) {          public AfstandAndenRuteTask(String distributor, String type) {
49                  this.distributor = distributor;                  this.distributor = distributor;
50                    this.type = type;
51                    
52                    type = type.toUpperCase();
53                    switch(type) {
54                    case "FULL":
55                            isIncremental = false;
56                            break;
57                    case "INCREMENTAL":
58                            isIncremental = true;
59                            break;
60                    default:
61                            throw new RuntimeException("Unknown type" + type);                      
62                    }
63          }          }
64    
65    
66          @Override          @Override
67          protected void taskRun() throws Exception {          protected void taskRun() throws Exception {
68                    
   
   
   
                 //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 );  
   
   
69    
70                  Constants.init(distributor);                  Constants.init(distributor);
71                  Constants consts = Constants.getInstance();                  Constants consts = Constants.getInstance();
# Line 80  public class AfstandAndenRuteTask extend Line 84  public class AfstandAndenRuteTask extend
84                  }                  }
85                  logger.info("Starting with MAX_WORKERS:" + max_workers);                          logger.info("Starting with MAX_WORKERS:" + max_workers);        
86                  setupThreadPool(max_workers);                  setupThreadPool(max_workers);
87                    
88                    logger.info("Starting with INCREMENTAL:" + isIncremental);
89    
90    
                 int antalIkkeDaekkede = -1;  
91    
92                  try (Connection conn = DBConnection.getConnection() ) {                  try (Connection conn = DBConnection.getConnection() ) {
93                          Database db = new Database(conn);                          Database db = new Database(conn, isIncremental);
94                            
95                            db.prepareIncrementalSearch();
96    
97                          Queue<Address> ikkeDaekkede = db.hentAlleIkkedaekkedeAdresser(consts.getMinPostnr(), consts.getMaxPostnr() );                          Queue<Address> ikkeDaekkede = db.hentAlleIkkedaekkedeAdresser(consts.getMinPostnr(), consts.getMaxPostnr() );
98                          antalIkkeDaekkede = ikkeDaekkede.size();                          antalIkkeDaekkede = ikkeDaekkede.size();
# Line 146  public class AfstandAndenRuteTask extend Line 154  public class AfstandAndenRuteTask extend
154                                  CyclicBarrier barrier = new CyclicBarrier(max_workers + 1);                                  CyclicBarrier barrier = new CyclicBarrier(max_workers + 1);
155    
156                                  for (int i=0; i<max_workers; i++) {                                  for (int i=0; i<max_workers; i++) {
157                                          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);
158                                          threadPool.submit( worker );                                          threadPool.submit( worker );
159                                  }                                  }
160    
# Line 161  public class AfstandAndenRuteTask extend Line 169  public class AfstandAndenRuteTask extend
169    
170                                  if (test_mode == false && this.isAborted() == false) {                                  if (test_mode == false && this.isAborted() == false) {
171                                          db.renameResultTables();                                          db.renameResultTables();
172                                            
173                                            ReloadHelper.triggerReload( "AfstandAndenRute/" + distributor );
174    
                                         String trigger_url = ServiceConfig.getInstance().trigger_url;  
   
                                         logger.info("Calling trigger URL");  
                                         String url = trigger_url + "&trigger=AfstandAndenRute/" + distributor;  
   
                                         HttpUtil.getContentString(url, 500);  
175    
176                                  } else {                                  } else {
177                                          logger.info( "Rename tables is disabled !!!" );                                          logger.info( "Rename tables is disabled !!!" );
# Line 238  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.2878  
changed lines
  Added in v.2927

  ViewVC Help
Powered by ViewVC 1.1.20