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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.20