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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2949 - (show annotations) (download)
Tue Feb 16 09:38:13 2016 UTC (8 years, 3 months ago) by torben
File size: 2665 byte(s)
Cleanup TODO:
1 package dk.daoas.adressevedligehold.fileupload;
2
3 import org.apache.commons.lang3.exception.ExceptionUtils;
4
5 import dk.daoas.adressevedligehold.ReloadHelper;
6 import dk.daoas.adressevedligehold.tasks.Task;
7 import dk.daoas.adressevedligehold.tasks.TaskLogger;
8 import dk.daoas.adressevedligehold.util.TimingHelper;
9
10 /*
11 * TODO: trigger afstand-anden-rute beregning
12 *
13 */
14
15 public class AddressTask extends Task {
16
17 private TaskLogger logger = TaskLogger.getInstance();
18
19 AddressSource source;
20 boolean writeBack;
21
22 public AddressTask(AddressSource source, boolean writeBack) {
23
24 this.source = source;
25 this.writeBack = writeBack;
26 }
27
28
29
30 @Override
31 protected void taskRun() throws Exception {
32
33 try {
34 TimingHelper timer = new TimingHelper();
35
36 logger.info("Validating Source");
37 source.validate();
38
39 logger.info("Reading data from DB");
40 AddressManager addrManager = new AddressManager();
41
42 logger.info("Data is ready");
43
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 AddressReport report = new AddressReport(addrManager, entryCount, ugedage, source, timer, writeBack, addrManager.getDuplicateCount() );
71 report.sendRapport();
72
73
74 if (writeBack) {
75 ReloadHelper.triggerReload( "Indlaesning/" + source.getDistributor() );
76 }
77
78
79
80 } 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 } finally {
91
92 try {
93 logger.info("Cleaning up resources");
94 source.close();
95 } catch (Exception e) {
96 logger.warning("Error during cleanup: ", e );
97 }
98 }
99
100 }
101
102 @Override
103 public String getDescription() {
104 return "AddressTask " + source.getDistributor();
105 }
106
107 @Override
108 public double getPercentCompleted() {
109 return -1;
110 }
111
112 @Override
113 public String getDetail() {
114 return source.getFilename();
115 }
116
117 }

  ViewVC Help
Powered by ViewVC 1.1.20