moved methods around

This commit is contained in:
Athou
2013-07-25 11:02:49 +02:00
parent d293e972f2
commit 00159ce1c5
4 changed files with 28 additions and 12 deletions

View File

@@ -1,6 +1,7 @@
package com.commafeed.backend; package com.commafeed.backend;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@@ -12,6 +13,7 @@ import org.slf4j.LoggerFactory;
import com.commafeed.backend.dao.FeedDAO; import com.commafeed.backend.dao.FeedDAO;
import com.commafeed.backend.dao.FeedEntryContentDAO; import com.commafeed.backend.dao.FeedEntryContentDAO;
import com.commafeed.backend.dao.FeedEntryDAO; import com.commafeed.backend.dao.FeedEntryDAO;
import com.commafeed.backend.dao.FeedEntryStatusDAO;
import com.commafeed.backend.dao.FeedSubscriptionDAO; import com.commafeed.backend.dao.FeedSubscriptionDAO;
import com.commafeed.backend.model.Feed; import com.commafeed.backend.model.Feed;
import com.commafeed.backend.model.FeedSubscription; import com.commafeed.backend.model.FeedSubscription;
@@ -33,6 +35,9 @@ public class DatabaseCleaner {
@Inject @Inject
FeedEntryContentDAO feedEntryContentDAO; FeedEntryContentDAO feedEntryContentDAO;
@Inject
FeedEntryStatusDAO feedEntryStatusDAO;
@Inject @Inject
ApplicationSettingsService applicationSettingsService; ApplicationSettingsService applicationSettingsService;
@@ -92,4 +97,10 @@ public class DatabaseCleaner {
} }
feedDAO.saveOrUpdate(into); feedDAO.saveOrUpdate(into);
} }
public void cleanStatusesOlderThan(Date olderThan) {
log.info("cleaning old read statuses");
int deleted = feedEntryStatusDAO.deleteOldStatuses(olderThan);
log.info("cleaned {} read statuses", deleted);
}
} }

View File

@@ -1,4 +1,4 @@
package com.commafeed.backend.services; package com.commafeed.backend;
import java.util.Date; import java.util.Date;
@@ -7,32 +7,31 @@ import javax.ejb.Stateless;
import javax.inject.Inject; import javax.inject.Inject;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@Stateless import com.commafeed.backend.services.ApplicationSettingsService;
public class CleaningService {
protected final static Logger log = LoggerFactory.getLogger(CleaningService.class); @Stateless
public class ScheduledTasks {
protected final static Logger log = LoggerFactory.getLogger(ScheduledTasks.class);
@Inject @Inject
ApplicationSettingsService applicationSettingsService; ApplicationSettingsService applicationSettingsService;
@Inject
DatabaseCleaner cleaner;
@PersistenceContext @PersistenceContext
EntityManager em; EntityManager em;
// every day at midnight // every day at midnight
@Schedule(hour = "0", persistent = false) @Schedule(hour = "0", persistent = false)
private void cleanOldStatuses() { private void cleanupOldStatuses() {
Date threshold = applicationSettingsService.get().getUnreadThreshold(); Date threshold = applicationSettingsService.get().getUnreadThreshold();
if (threshold != null) { if (threshold != null) {
log.info("cleaning old read statuses"); cleaner.cleanStatusesOlderThan(threshold);
Query query = em.createNamedQuery("Statuses.deleteOld");
query.setParameter("date", threshold);
int deleted = query.executeUpdate();
log.info("cleaned {} read statuses", deleted);
} }
} }
} }

View File

@@ -266,4 +266,10 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
setTimeout(query, applicationSettingsService.get().getQueryTimeout()); setTimeout(query, applicationSettingsService.get().getQueryTimeout());
} }
public int deleteOldStatuses(Date olderThan) {
Query query = em.createNamedQuery("Statuses.deleteOld");
query.setParameter("date", olderThan);
return query.executeUpdate();
}
} }

View File

@@ -262,7 +262,7 @@ public class AdminREST extends AbstractResourceREST {
@ApiOperation(value = "Entries cleanup", notes = "Delete entries older than given date") @ApiOperation(value = "Entries cleanup", notes = "Delete entries older than given date")
public Response cleanupEntries(@QueryParam("days") @DefaultValue("30") int days) { public Response cleanupEntries(@QueryParam("days") @DefaultValue("30") int days) {
Map<String, Long> map = Maps.newHashMap(); Map<String, Long> map = Maps.newHashMap();
map.put("old entries", cleaner.cleanEntriesOlderThan(days, TimeUnit.DAYS)); map.put("old_entries", cleaner.cleanEntriesOlderThan(days, TimeUnit.DAYS));
return Response.ok(map).build(); return Response.ok(map).build();
} }