diff options
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/eu/mulk/mulkcms2/benki/newsletter/NewsletterSubscriptionExpirer.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/newsletter/NewsletterSubscriptionExpirer.java b/src/main/java/eu/mulk/mulkcms2/benki/newsletter/NewsletterSubscriptionExpirer.java new file mode 100644 index 0000000..43787dc --- /dev/null +++ b/src/main/java/eu/mulk/mulkcms2/benki/newsletter/NewsletterSubscriptionExpirer.java @@ -0,0 +1,25 @@ +package eu.mulk.mulkcms2.benki.newsletter; + +import io.quarkus.scheduler.Scheduled; +import java.time.OffsetDateTime; +import javax.enterprise.context.Dependent; +import javax.transaction.Transactional; +import org.jboss.logging.Logger; + +@Dependent +public class NewsletterSubscriptionExpirer { + + private static final Logger log = Logger.getLogger(NewsletterUnsubscriber.class); + + @Scheduled(every = "PT1H") + @Transactional + void run() { + var subscriptionsDeleted = + NewsletterSubscription.delete( + "registrationKey IS NOT NULL AND startDate < ?1", + OffsetDateTime.now().minusWeeks(1)); + if (subscriptionsDeleted > 0) { + log.infof("%d expired newsletter subscriptions deleted.", subscriptionsDeleted); + } + } +} |