/[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 2993 - (hide annotations) (download)
Tue Mar 29 19:49:38 2016 UTC (8 years, 2 months ago) by torben
File size: 2939 byte(s)
Implement a reload task that triggers the reload and then just blocks the reload queue
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 2993 import dk.daoas.adressevedligehold.ReloadTask;
7 torben 2954 import dk.daoas.adressevedligehold.afstandandenrute.AfstandAndenRuteTask;
8 torben 2838 import dk.daoas.adressevedligehold.tasks.Task;
9 torben 2903 import dk.daoas.adressevedligehold.tasks.TaskLogger;
10 torben 2838 import dk.daoas.adressevedligehold.util.TimingHelper;
11    
12 torben 2840 /*
13     *
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 torben 2993 manager.submitTask( new ReloadTask("Indlaesning/" + source.getDistributor()) );
77 torben 2954
78    
79     if (source.calculateDistances()) {
80     Task tsk = new AfstandAndenRuteTask(source.getDistributor(), AfstandAndenRuteTask.INCREMENTAL);
81     manager.submitTask( tsk );
82     }
83 torben 2897 }
84 torben 2838
85 torben 2954
86 torben 2896
87 torben 2856 } catch(Exception e) {
88    
89     String subject = "Error loading data for " + source.getDistributor();
90     String body = "File: " + source.getFilename();
91     body += "<br><br>";
92     body += "Exception:<br>";
93     body += ExceptionUtils.getStackTrace(e);
94 torben 2953 MailSender.sendMail(subject, body);
95 torben 2856
96     throw e; //rethrow exception
97 torben 2844 } finally {
98    
99     try {
100 torben 2903 logger.info("Cleaning up resources");
101 torben 2844 source.close();
102     } catch (Exception e) {
103 torben 2903 logger.warning("Error during cleanup: ", e );
104 torben 2844 }
105 torben 2838 }
106 torben 2844
107 torben 2838 }
108    
109     @Override
110     public String getDescription() {
111     return "AddressTask " + source.getDistributor();
112     }
113    
114     @Override
115 torben 2891 public double getPercentCompleted() {
116     return -1;
117 torben 2838 }
118    
119     @Override
120     public String getDetail() {
121     return source.getFilename();
122     }
123    
124     }

  ViewVC Help
Powered by ViewVC 1.1.20