2013-07-23 15:27:56 +02:00
|
|
|
package com.commafeed.backend.services;
|
|
|
|
|
|
2013-07-25 09:12:56 +02:00
|
|
|
import java.util.Date;
|
|
|
|
|
|
|
|
|
|
import javax.ejb.Schedule;
|
2013-07-23 15:27:56 +02:00
|
|
|
import javax.ejb.Stateless;
|
|
|
|
|
import javax.inject.Inject;
|
|
|
|
|
import javax.persistence.EntityManager;
|
|
|
|
|
import javax.persistence.PersistenceContext;
|
|
|
|
|
import javax.persistence.Query;
|
|
|
|
|
|
2013-07-25 09:12:56 +02:00
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
2013-07-23 15:27:56 +02:00
|
|
|
@Stateless
|
|
|
|
|
public class CleaningService {
|
|
|
|
|
|
2013-07-25 09:12:56 +02:00
|
|
|
protected final static Logger log = LoggerFactory.getLogger(CleaningService.class);
|
|
|
|
|
|
2013-07-23 15:27:56 +02:00
|
|
|
@Inject
|
|
|
|
|
ApplicationSettingsService applicationSettingsService;
|
|
|
|
|
|
|
|
|
|
@PersistenceContext
|
|
|
|
|
EntityManager em;
|
|
|
|
|
|
2013-07-25 09:12:56 +02:00
|
|
|
// every day at midnight
|
|
|
|
|
@Schedule(hour = "*", minute = "*", persistent = false)
|
|
|
|
|
private void cleanOldStatuses() {
|
|
|
|
|
Date threshold = applicationSettingsService.get().getUnreadThreshold();
|
|
|
|
|
if (threshold != null) {
|
|
|
|
|
log.info("cleaning old statuses");
|
2013-07-23 15:27:56 +02:00
|
|
|
Query query = em.createNamedQuery("Statuses.deleteOld");
|
2013-07-25 09:12:56 +02:00
|
|
|
query.setParameter("date", threshold);
|
2013-07-23 15:27:56 +02:00
|
|
|
query.executeUpdate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|