/[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 2946 by torben, Sat Feb 13 13:16:34 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          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    
46    
47          public AfstandAndenRuteTask(String distributor) {          public AfstandAndenRuteTask(String distributor, String type) {
48                  this.distributor = distributor;                  this.distributor = distributor;
49                    
50                    type = type.toUpperCase();
51                    switch(type) {
52                    case "FULL":
53                            isIncremental = false;
54                            break;
55                    case "INCREMENTAL":
56                            isIncremental = true;
57                            break;
58                    default:
59                            throw new RuntimeException("Unknown type" + type);                      
60                    }
61          }          }
62    
63    
64          @Override          @Override
65          protected void taskRun() throws Exception {          protected void taskRun() throws Exception {
66                    
   
   
   
                 //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 );  
   
   
67    
68                  Constants.init(distributor);                  Constants.init(distributor);
69                  Constants consts = Constants.getInstance();                  Constants consts = Constants.getInstance();
# Line 78  public class AfstandAndenRuteTask extend Line 82  public class AfstandAndenRuteTask extend
82                  }                  }
83                  logger.info("Starting with MAX_WORKERS:" + max_workers);                          logger.info("Starting with MAX_WORKERS:" + max_workers);        
84                  setupThreadPool(max_workers);                  setupThreadPool(max_workers);
85                    
86                    logger.info("Starting with INCREMENTAL:" + isIncremental);
87    
88    
                 int antalIkkeDaekkede = -1;  
89    
90                  try (Connection conn = DBConnection.getConnection() ) {                  try (Connection conn = DBConnection.getConnection() ) {
91                          Database db = new Database(conn);                          DatabaseRouteDistance db = new DatabaseRouteDistance(conn, isIncremental);
92                            
93                            db.prepareIncrementalSearch();
94    
95                          Queue<Address> ikkeDaekkede = db.hentAlleIkkedaekkedeAdresser(consts.getMinPostnr(), consts.getMaxPostnr() );                          Queue<Address> ikkeDaekkede = db.hentAlleIkkedaekkedeAdresser(consts.getMinPostnr(), consts.getMaxPostnr() );
96                          antalIkkeDaekkede = ikkeDaekkede.size();                          antalIkkeDaekkede = ikkeDaekkede.size();
# Line 144  public class AfstandAndenRuteTask extend Line 152  public class AfstandAndenRuteTask extend
152                                  CyclicBarrier barrier = new CyclicBarrier(max_workers + 1);                                  CyclicBarrier barrier = new CyclicBarrier(max_workers + 1);
153    
154                                  for (int i=0; i<max_workers; i++) {                                  for (int i=0; i<max_workers; i++) {
155                                          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);
156                                          threadPool.submit( worker );                                          threadPool.submit( worker );
157                                  }                                  }
158    
# Line 159  public class AfstandAndenRuteTask extend Line 167  public class AfstandAndenRuteTask extend
167    
168                                  if (test_mode == false && this.isAborted() == false) {                                  if (test_mode == false && this.isAborted() == false) {
169                                          db.renameResultTables();                                          db.renameResultTables();
170                                            
171                                            ReloadHelper.triggerReload( "AfstandAndenRute/" + distributor );
172    
                                         String trigger_url = ServiceConfig.getInstance().trigger_url;  
   
                                         logger.info("Calling trigger URL");  
                                         String url = trigger_url + "&trigger=AfstandAndenRute/" + distributor;  
   
                                         HttpUtil.getContentString(url, 500);  
173    
174                                  } else {                                  } else {
175                                          logger.info( "Rename tables is disabled !!!" );                                          logger.info( "Rename tables is disabled !!!" );
# Line 173  public class AfstandAndenRuteTask extend Line 177  public class AfstandAndenRuteTask extend
177    
178    
179    
180                          } else {                          } /*else {
181                                  /// Test                                  /// Test
182                                  /*                                  
183                                  db.resetResultTable();                                  db.resetResultTable();
184    
185    
# Line 184  public class AfstandAndenRuteTask extend Line 188  public class AfstandAndenRuteTask extend
188    
189                                  short post = (short) 2700;                                                        short post = (short) 2700;                      
190                                  Lookup lookup = new Lookup(post, db, threadPool);                                  Lookup lookup = new Lookup(post, db, threadPool);
191                                  lookup.doLookup();*/                                                                                              lookup.doLookup();                                                              
192                          }                          } */
193    
194    
195                          long now = System.currentTimeMillis();                          long now = System.currentTimeMillis();
# Line 236  public class AfstandAndenRuteTask extend Line 240  public class AfstandAndenRuteTask extend
240    
241          @Override          @Override
242          public String getDescription() {          public String getDescription() {
243                  return "Afstand anden rute";                  return "Afstand anden rute/" + distributor;
244          }          }
245    
246    
247    
248          @Override          @Override
249          public String getDetail() {          public String getDetail() {
250                  // TODO Auto-generated method stub                  if (isIncremental) {
251                  return null;                          return "Type: incremental";
252                    } else {
253                            return "Type: full";
254                    }
255          }          }
256    
257    
258    
259          @Override          @Override
260          public short getPercentCompleted() {          public double getPercentCompleted() {
261                  // TODO Auto-generated method stub                  return (antalBeregnet.get() / ((float)antalIkkeDaekkede)) * 100.0;
                 return 0;  
262          }          }
263  }  }

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

  ViewVC Help
Powered by ViewVC 1.1.20