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

  ViewVC Help
Powered by ViewVC 1.1.20