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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20