/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/coveragefileupload/AddressTask.java
ViewVC logotype

Annotation of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/coveragefileupload/AddressTask.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2949 - (hide annotations) (download)
Tue Feb 16 09:38:13 2016 UTC (8 years, 3 months ago) by torben
Original Path: dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressTask.java
File size: 2665 byte(s)
Cleanup TODO:
1 torben 2947 package dk.daoas.adressevedligehold.fileupload;
2 torben 2838
3 torben 2856 import org.apache.commons.lang3.exception.ExceptionUtils;
4    
5 torben 2947 import dk.daoas.adressevedligehold.ReloadHelper;
6 torben 2838 import dk.daoas.adressevedligehold.tasks.Task;
7 torben 2903 import dk.daoas.adressevedligehold.tasks.TaskLogger;
8 torben 2838 import dk.daoas.adressevedligehold.util.TimingHelper;
9    
10 torben 2840 /*
11 torben 2949 * TODO: trigger afstand-anden-rute beregning
12 torben 2840 *
13     */
14    
15 torben 2838 public class AddressTask extends Task {
16    
17 torben 2903 private TaskLogger logger = TaskLogger.getInstance();
18    
19 torben 2838 AddressSource source;
20     boolean writeBack;
21    
22     public AddressTask(AddressSource source, boolean writeBack) {
23    
24     this.source = source;
25     this.writeBack = writeBack;
26     }
27 torben 2844
28    
29 torben 2838
30     @Override
31 torben 2844 protected void taskRun() throws Exception {
32 torben 2838
33     try {
34     TimingHelper timer = new TimingHelper();
35 torben 2844
36 torben 2903 logger.info("Validating Source");
37 torben 2844 source.validate();
38    
39 torben 2903 logger.info("Reading data from DB");
40 torben 2838 AddressManager addrManager = new AddressManager();
41    
42 torben 2903 logger.info("Data is ready");
43 torben 2838
44     EntryUgedage ugedage = new EntryUgedage(); //saml op på hvilke ugedage der er blevet behandlet
45    
46    
47     int entryCount = 0;
48    
49     AddressSourceEntry entry;
50     while ( (entry = source.getNextEntry()) != null) {
51     if (super.abort) {
52     break;
53     }
54    
55     addrManager.visit(entry);
56     ugedage.merge(entry.ugedage);
57     entryCount++;
58     }
59    
60     addrManager.closeUnvisitedAddresses( source.getDistributor(), ugedage );
61    
62    
63    
64     if (writeBack) {
65     addrManager.writeBackChanges();
66     } else {
67     addrManager.dumpChanged();
68     }
69    
70 torben 2924 AddressReport report = new AddressReport(addrManager, entryCount, ugedage, source, timer, writeBack, addrManager.getDuplicateCount() );
71 torben 2838 report.sendRapport();
72    
73    
74 torben 2897 if (writeBack) {
75     ReloadHelper.triggerReload( "Indlaesning/" + source.getDistributor() );
76     }
77 torben 2838
78 torben 2896
79 torben 2897
80 torben 2856 } catch(Exception e) {
81    
82     String subject = "Error loading data for " + source.getDistributor();
83     String body = "File: " + source.getFilename();
84     body += "<br><br>";
85     body += "Exception:<br>";
86     body += ExceptionUtils.getStackTrace(e);
87     AddressReport.sendMail(subject, body);
88    
89     throw e; //rethrow exception
90 torben 2844 } finally {
91    
92     try {
93 torben 2903 logger.info("Cleaning up resources");
94 torben 2844 source.close();
95     } catch (Exception e) {
96 torben 2903 logger.warning("Error during cleanup: ", e );
97 torben 2844 }
98 torben 2838 }
99 torben 2844
100 torben 2838 }
101    
102     @Override
103     public String getDescription() {
104     return "AddressTask " + source.getDistributor();
105     }
106    
107     @Override
108 torben 2891 public double getPercentCompleted() {
109     return -1;
110 torben 2838 }
111    
112     @Override
113     public String getDetail() {
114     return source.getFilename();
115     }
116    
117     }

  ViewVC Help
Powered by ViewVC 1.1.20