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

  ViewVC Help
Powered by ViewVC 1.1.20