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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2147 - (hide annotations) (download)
Wed Apr 30 12:53:01 2014 UTC (10 years, 1 month ago) by torben
File size: 1986 byte(s)
V2 - læs arbejds sættene fra Database i en seperat tråd
1 torben 2147 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