--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressTask.java 2016/01/24 21:48:55 2838 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressTask.java 2016/02/05 08:01:18 2924 @@ -1,10 +1,20 @@ package dk.daoas.adressevedligehold; +import org.apache.commons.lang3.exception.ExceptionUtils; + import dk.daoas.adressevedligehold.tasks.Task; +import dk.daoas.adressevedligehold.tasks.TaskLogger; import dk.daoas.adressevedligehold.util.TimingHelper; +/* + * TODO: trigger indlæsning + * + */ + public class AddressTask extends Task { + private TaskLogger logger = TaskLogger.getInstance(); + AddressSource source; boolean writeBack; @@ -13,16 +23,22 @@ this.source = source; this.writeBack = writeBack; } + + @Override - protected void taskRun() { + protected void taskRun() throws Exception { try { TimingHelper timer = new TimingHelper(); - System.out.println("Reading data from DB"); + + logger.info("Validating Source"); + source.validate(); + + logger.info("Reading data from DB"); AddressManager addrManager = new AddressManager(); - System.out.println("Data is ready"); + logger.info("Data is ready"); EntryUgedage ugedage = new EntryUgedage(); //saml op på hvilke ugedage der er blevet behandlet @@ -50,22 +66,36 @@ addrManager.dumpChanged(); } - AddressReport report = new AddressReport(addrManager, entryCount, ugedage, source, timer, writeBack); + AddressReport report = new AddressReport(addrManager, entryCount, ugedage, source, timer, writeBack, addrManager.getDuplicateCount() ); report.sendRapport(); + if (writeBack) { + ReloadHelper.triggerReload( "Indlaesning/" + source.getDistributor() ); + } - } catch (Exception e) { - e.printStackTrace(); - } - - - try { - System.out.println("Cleaning up resources"); - source.close(); - } catch (Exception e) { - System.out.println("Error during cleanup: " + e.getMessage() ); + + + } catch(Exception e) { + + String subject = "Error loading data for " + source.getDistributor(); + String body = "File: " + source.getFilename(); + body += "

"; + body += "Exception:
"; + body += ExceptionUtils.getStackTrace(e); + AddressReport.sendMail(subject, body); + + throw e; //rethrow exception + } finally { + + try { + logger.info("Cleaning up resources"); + source.close(); + } catch (Exception e) { + logger.warning("Error during cleanup: ", e ); + } } + } @Override @@ -74,8 +104,8 @@ } @Override - public short getPercentCompleted() { - return 0; + public double getPercentCompleted() { + return -1; } @Override