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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2145 - (show annotations) (download)
Wed Apr 30 08:15:48 2014 UTC (10 years ago) by torben
File size: 1931 byte(s)
Initial import.
1 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 ArrayList<Adresse> daekkede = lookup.getDaekkedeAdresser();
23 Queue<Adresse> queue = lookup.getQueue();
24 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