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

Annotation of /dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/LookupWorker.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2150 - (hide annotations) (download)
Wed May 7 07:39:26 2014 UTC (10 years ago) by torben
File size: 1931 byte(s)
revert to before InputWorker
1 torben 2145 package dk.daoas.fulddaekning;
2    
3     import java.sql.SQLException;
4     import java.util.ArrayList;
5     import java.util.Queue;
6     import java.util.logging.Level;
7     import java.util.logging.Logger;
8    
9     public class LookupWorker implements Runnable {
10     Logger logger = Logger.getLogger( LookupWorker.class.getName() );
11    
12     int workerId;
13     Lookup lookup;
14    
15     public LookupWorker(int workerId, Lookup lookup) {
16     this.workerId = workerId;
17     this.lookup = lookup;
18     }
19    
20     @Override
21     public void run() {
22 torben 2150 ArrayList<Adresse> daekkede = lookup.getDaekkedeAdresser();
23     Queue<Adresse> queue = lookup.getQueue();
24 torben 2145 Database db = lookup.getDb();
25    
26     Adresse qAdresse;
27    
28    
29    
30     while ( (qAdresse = queue.poll()) != null) {
31     //logger.info("Worker " + workerId + ", analyzing " + qAdresse);
32    
33     double bedsteAfstand = 9999999.999;
34     Adresse bedsteAdr = null;
35     for (int i=0; i<daekkede.size(); i++) {
36     Adresse daekket = daekkede.get(i);
37     double afstand = Adresse.beregnAfstand(qAdresse, daekket);
38    
39     if (afstand < bedsteAfstand) {
40     bedsteAfstand = afstand;
41     bedsteAdr = daekket;
42     }
43     }
44    
45    
46     if ( bedsteAdr != null) {
47    
48     if (bedsteAfstand <= 6.0) {
49     if (Lookup.verbose == true) {
50     logger.info("(" +workerId + ") Bedste: " + qAdresse + "==>" + bedsteAdr + " ::: " + bedsteAfstand );
51     }
52    
53     try {
54     db.gemResultat(qAdresse, bedsteAdr, bedsteAfstand);
55     } catch (SQLException e) {
56     logger.log(Level.WARNING, "Error saving result", e);
57     logger.warning("Shutting down");
58    
59     System.exit(0); //hvis at indsættelsen fejler skal vi afbryde med det samme
60     }
61     } else {
62     logger.info("(" +workerId + ") For stor afstand " + qAdresse + " -> " + bedsteAfstand);
63     }
64     } else {
65     logger.warning("(" +workerId + ") Ingen match til " + qAdresse);
66     }
67    
68     }
69    
70    
71     lookup.shutdownWorker( workerId);
72     }
73    
74     }

  ViewVC Help
Powered by ViewVC 1.1.20