@Override
public void start() {
try (DbSession dbSession = dbClient.openSession(false)) {
Date sixMonthsAgo = DateUtils.addDays(new Date(system2.now()), -180);
LOGGER.info("Delete the Compute Engine tasks created before {}", sixMonthsAgo.getTime());
Set<String> ceActivityUuids = dbClient.ceActivityDao().selectOlderThan(dbSession, sixMonthsAgo.getTime())
.stream()
.map(CeActivityDto::getUuid)
.collect(toSet());
dbClient.ceActivityDao().deleteByUuids(dbSession, ceActivityUuids);
dbClient.ceTaskCharacteristicsDao().deleteByTaskUuids(dbSession, ceActivityUuids);
dbClient.ceTaskInputDao().deleteByUuids(dbSession, ceActivityUuids);
Date fourWeeksAgo = DateUtils.addDays(new Date(system2.now()), -28);
LOGGER.info("Delete the Scanner contexts tasks created before {}", fourWeeksAgo.getTime());
Set<String> scannerContextUuids = dbClient.ceScannerContextDao().selectOlderThan(dbSession, fourWeeksAgo.getTime());
dbClient.ceScannerContextDao().deleteByUuids(
dbSession,
concat(ceActivityUuids.stream(), scannerContextUuids.stream()).collect(toSet()));
dbSession.commit();
}
}