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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2147 - (show annotations) (download)
Wed Apr 30 12:53:01 2014 UTC (10 years ago) by torben
File size: 1986 byte(s)
V2 - læs arbejds sættene fra Database i en seperat tråd
1 package dk.daoas.fulddaekning;
2
3 import java.util.LinkedList;
4 import java.util.Queue;
5 import java.util.concurrent.ConcurrentLinkedQueue;
6 import java.util.logging.Level;
7 import java.util.logging.Logger;
8
9 public class InputWorker implements Runnable {
10
11 static Logger logger = Logger.getLogger( InputWorker.class.toString() );
12
13 Database db;
14
15 public Queue<WorkSet> queue = new ConcurrentLinkedQueue<WorkSet>();
16 public boolean isDone = false;
17
18
19 public InputWorker(Database db) {
20 this.db = db;
21 }
22
23 @Override
24 public void run() {
25 logger.info("Finder postnumre");
26 try {
27
28 Queue<Integer> postnumre = new LinkedList<Integer>();
29 postnumre.addAll( db.hentPostnumre() );
30
31 while( postnumre.isEmpty() == false) {
32 if (queue.size() <= 25) {
33 int postnr = postnumre.poll();
34
35 WorkSet workSet = new WorkSet();
36 workSet.postnr = postnr;
37
38 BoundingBox bbox = db.getBoundingbox(postnr);
39 bbox.validateBbox();
40
41 logger.info("Bbox=" + bbox);
42 bbox.adjustToMargin();
43 logger.info("Bbox Adjusted=" + bbox);
44
45 logger.info("Henter _ikke_ daekkede adresser i " + postnr);
46 workSet.ikkeDaekkede = db.hentIkkedaekkedeAdresser(postnr);
47
48 if ( workSet.ikkeDaekkede.isEmpty()) {
49 //hvis der ikke er nogen adresser at arbejde på skal vi heller ikke gemme et workset
50 logger.info("Nothing to do for " + postnr);
51 continue;
52 }
53
54
55 logger.info("Henter daekkede adresser i " + postnr);
56 workSet.daekkedeAdresser = db.hentDaekkedeAdresser(bbox);
57
58 workSet.queueSize = workSet.ikkeDaekkede.size();
59
60 queue.add(workSet);
61 } else {
62 //queue.wait(10);
63 Thread.sleep(10);
64 }
65 }
66
67 logger.info("Input Worker done - stopping !!!");
68 isDone = true;
69
70
71 } catch (Exception e) {
72 logger.log(Level.SEVERE, "Error during inputworker", e);
73 System.exit(1);
74 }
75
76
77 }
78
79 }

  ViewVC Help
Powered by ViewVC 1.1.20