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;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
@@ -12,6 +13,7 @@ import org.slf4j.LoggerFactory;
import com.commafeed.backend.dao.FeedDAO;
import com.commafeed.backend.dao.FeedEntryContentDAO;
import com.commafeed.backend.dao.FeedEntryDAO;
import com.commafeed.backend.dao.FeedEntryStatusDAO;
import com.commafeed.backend.dao.FeedSubscriptionDAO;
import com.commafeed.backend.model.Feed;
import com.commafeed.backend.model.FeedSubscription;
@@ -33,6 +35,9 @@ public class DatabaseCleaner {
@Inject
FeedEntryContentDAO feedEntryContentDAO;
@Inject
FeedEntryStatusDAO feedEntryStatusDAO;
@Inject
ApplicationSettingsService applicationSettingsService;
@@ -92,4 +97,10 @@ public class DatabaseCleaner {
}
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;
@@ -7,32 +7,31 @@ import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Stateless
public class CleaningService {
import com.commafeed.backend.services.ApplicationSettingsService;
protected final static Logger log = LoggerFactory.getLogger(CleaningService.class);
@Stateless
public class ScheduledTasks {
protected final static Logger log = LoggerFactory.getLogger(ScheduledTasks.class);
@Inject
ApplicationSettingsService applicationSettingsService;
@Inject
DatabaseCleaner cleaner;
@PersistenceContext
EntityManager em;
// every day at midnight
@Schedule(hour = "0", persistent = false)
private void cleanOldStatuses() {
private void cleanupOldStatuses() {
Date threshold = applicationSettingsService.get().getUnreadThreshold();
if (threshold != null) {
log.info("cleaning old read statuses");
Query query = em.createNamedQuery("Statuses.deleteOld");
query.setParameter("date", threshold);
int deleted = query.executeUpdate();
log.info("cleaned {} read statuses", deleted);
cleaner.cleanStatusesOlderThan(threshold);
}
}
}

View File

@@ -266,4 +266,10 @@ public class FeedEntryStatusDAO extends GenericDAO<FeedEntryStatus> {
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")
public Response cleanupEntries(@QueryParam("days") @DefaultValue("30") int days) {
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();
}