Former-commit-id: cc32837aa622271c375ce50add3fb43136c32fc1
This commit is contained in:
Daniel Collin 2015-12-18 10:15:22 +01:00
parent 5036ec90e9
commit d635888742
3 changed files with 15 additions and 13 deletions

View file

@ -2,7 +2,7 @@ package se.koc.hal;
import se.koc.hal.deamon.DataAggregatorDaemon; import se.koc.hal.deamon.DataAggregatorDaemon;
import se.koc.hal.deamon.DataDeletionDaemon; import se.koc.hal.deamon.DataCleanupDaemon;
import se.koc.hal.deamon.DataSynchronizationClient; import se.koc.hal.deamon.DataSynchronizationClient;
import se.koc.hal.deamon.DataSynchronizationDaemon; import se.koc.hal.deamon.DataSynchronizationDaemon;
import se.koc.hal.intf.HalDaemon; import se.koc.hal.intf.HalDaemon;
@ -45,7 +45,7 @@ public class PowerChallenge {
new DataAggregatorDaemon(), new DataAggregatorDaemon(),
new DataSynchronizationDaemon(), new DataSynchronizationDaemon(),
new DataSynchronizationClient(), new DataSynchronizationClient(),
new DataDeletionDaemon() new DataCleanupDaemon()
}; };
Timer daemonTimer = new Timer(); Timer daemonTimer = new Timer();
for(HalDaemon daemon : daemons){ for(HalDaemon daemon : daemons){

View file

@ -14,6 +14,7 @@ import se.koc.hal.HalContext;
import se.koc.hal.intf.HalDaemon; import se.koc.hal.intf.HalDaemon;
import se.koc.hal.struct.HalSensor; import se.koc.hal.struct.HalSensor;
import se.koc.hal.struct.HalSensor.AggregationMethod; import se.koc.hal.struct.HalSensor.AggregationMethod;
import se.koc.hal.struct.PowerConsumptionSensor;
import se.koc.hal.util.TimeUtility; import se.koc.hal.util.TimeUtility;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import zutil.db.SQLResultHandler; import zutil.db.SQLResultHandler;
@ -42,17 +43,17 @@ public class DataAggregatorDaemon extends TimerTask implements HalDaemon {
} }
public void aggregateSensor(HalSensor sensor) { public void aggregateSensor(HalSensor sensor) {
logger.fine("The sensor is of type: " + sensor.getType()); //if(sensor instanceof PowerConsumptionSensor){
if(sensor.getType().equals("PowerMeter")){ logger.fine("The sensor is of type: " + PowerConsumptionSensor.class.getSimpleName());
logger.fine("aggregating raw data to five minute periods"); logger.fine("aggregating raw data to five minute periods");
aggregateRawData(sensor, TimeUtility.FIVE_MINUTES_IN_MS, 5); aggregateRawData(sensor, TimeUtility.FIVE_MINUTES_IN_MS, 5);
logger.fine("aggregating five minute periods into hour periods"); logger.fine("aggregating five minute periods into hour periods");
aggrigateAggregatedData(sensor, TimeUtility.FIVE_MINUTES_IN_MS, TimeUtility.HOUR_IN_MS); aggrigateAggregatedData(sensor, TimeUtility.FIVE_MINUTES_IN_MS, TimeUtility.HOUR_IN_MS);
logger.fine("aggregating one hour periods into one day periods"); logger.fine("aggregating one hour periods into one day periods");
aggrigateAggregatedData(sensor, TimeUtility.HOUR_IN_MS, TimeUtility.DAY_IN_MS); aggrigateAggregatedData(sensor, TimeUtility.HOUR_IN_MS, TimeUtility.DAY_IN_MS);
}else{ //}else{
logger.fine("The sensor type is not supported by the aggregation daemon. Ignoring"); // logger.fine("The sensor type is not supported by the aggregation daemon. Ignoring");
} //}
} }
/** /**

View file

@ -13,13 +13,14 @@ import java.util.logging.Logger;
import se.koc.hal.HalContext; import se.koc.hal.HalContext;
import se.koc.hal.intf.HalDaemon; import se.koc.hal.intf.HalDaemon;
import se.koc.hal.struct.HalSensor; import se.koc.hal.struct.HalSensor;
import se.koc.hal.struct.PowerConsumptionSensor;
import se.koc.hal.util.TimeUtility; import se.koc.hal.util.TimeUtility;
import zutil.db.DBConnection; import zutil.db.DBConnection;
import zutil.db.SQLResultHandler; import zutil.db.SQLResultHandler;
import zutil.db.handler.SimpleSQLResult; import zutil.db.handler.SimpleSQLResult;
import zutil.log.LogUtil; import zutil.log.LogUtil;
public class DataDeletionDaemon extends TimerTask implements HalDaemon { public class DataCleanupDaemon extends TimerTask implements HalDaemon {
private static final Logger logger = LogUtil.getLogger(); private static final Logger logger = LogUtil.getLogger();
public void initiate(Timer timer){ public void initiate(Timer timer){
@ -41,8 +42,8 @@ public class DataDeletionDaemon extends TimerTask implements HalDaemon {
} }
public void cleanupSensor(HalSensor sensor) { public void cleanupSensor(HalSensor sensor) {
logger.fine("The sensor is of type: " + sensor.getType()); //if(sensor instanceof PowerConsumptionSensor){
if(sensor.getType().equals("PowerMeter")){ //TODO: use instanceof instead logger.fine("The sensor is of type: " + PowerConsumptionSensor.class.getSimpleName());
if(sensor.getUser().isExternal()){ if(sensor.getUser().isExternal()){
cleanupExternalSensorData(sensor.getId(), TimeUtility.FIVE_MINUTES_IN_MS, TimeUtility.DAY_IN_MS); cleanupExternalSensorData(sensor.getId(), TimeUtility.FIVE_MINUTES_IN_MS, TimeUtility.DAY_IN_MS);
cleanupExternalSensorData(sensor.getId(), TimeUtility.DAY_IN_MS, TimeUtility.WEEK_IN_MS); cleanupExternalSensorData(sensor.getId(), TimeUtility.DAY_IN_MS, TimeUtility.WEEK_IN_MS);
@ -50,9 +51,9 @@ public class DataDeletionDaemon extends TimerTask implements HalDaemon {
cleanupInternalSensorData(sensor.getId(), TimeUtility.HOUR_IN_MS, TimeUtility.FIVE_MINUTES_IN_MS, TimeUtility.DAY_IN_MS); cleanupInternalSensorData(sensor.getId(), TimeUtility.HOUR_IN_MS, TimeUtility.FIVE_MINUTES_IN_MS, TimeUtility.DAY_IN_MS);
cleanupInternalSensorData(sensor.getId(), TimeUtility.DAY_IN_MS, TimeUtility.HOUR_IN_MS, TimeUtility.WEEK_IN_MS); cleanupInternalSensorData(sensor.getId(), TimeUtility.DAY_IN_MS, TimeUtility.HOUR_IN_MS, TimeUtility.WEEK_IN_MS);
} }
}else{ //}else{
logger.fine("The sensor type is not supported by the cleanup deamon. Ignoring"); // logger.fine("The sensor type is not supported by the cleanup deamon. Ignoring");
} //}
} }
/** /**