From d72a03c434c735c8c3f36f782479f85b881481df Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 5 Aug 2020 13:23:20 +0200 Subject: [PATCH] Allow to adjust ticket cache duration --- doc/admin/config.rst | 9 +++++++++ src/pretix/base/services/cleanup.py | 5 +++-- src/pretix/settings.py | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/doc/admin/config.rst b/doc/admin/config.rst index fe933b6f8f..7cf43b540d 100644 --- a/doc/admin/config.rst +++ b/doc/admin/config.rst @@ -339,6 +339,15 @@ application. If you want to use sentry, you need to set a DSN in the configurati You will be given this value by your sentry installation. +Caching +------- + +You can adjust some caching settings to control how much storage pretix uses:: + + [cache] + tickets=48 ; Number of hours tickets (PDF, passbook, …) are cached + + Secret length ------------- diff --git a/src/pretix/base/services/cleanup.py b/src/pretix/base/services/cleanup.py index b56f546ae3..62d2e7381b 100644 --- a/src/pretix/base/services/cleanup.py +++ b/src/pretix/base/services/cleanup.py @@ -1,5 +1,6 @@ from datetime import timedelta +from django.conf import settings from django.dispatch import receiver from django.utils.timezone import now from django_scopes import scopes_disabled @@ -31,9 +32,9 @@ def clean_cached_files(sender, **kwargs): @receiver(signal=periodic_task) @scopes_disabled() def clean_cached_tickets(sender, **kwargs): - for cf in CachedTicket.objects.filter(created__lte=now() - timedelta(days=3)): + for cf in CachedTicket.objects.filter(created__lte=now() - timedelta(hours=settings.CACHE_TICKETS_HOURS)): cf.delete() - for cf in CachedCombinedTicket.objects.filter(created__lte=now() - timedelta(days=3)): + for cf in CachedCombinedTicket.objects.filter(created__lte=now() - timedelta(hours=settings.CACHE_TICKETS_HOURS)): cf.delete() for cf in CachedTicket.objects.filter(created__lte=now() - timedelta(minutes=30), file__isnull=True): cf.delete() diff --git a/src/pretix/settings.py b/src/pretix/settings.py index 46245303d9..58ac1e3ed6 100644 --- a/src/pretix/settings.py +++ b/src/pretix/settings.py @@ -241,6 +241,8 @@ else: SESSION_COOKIE_DOMAIN = config.get('pretix', 'cookie_domain', fallback=None) +CACHE_TICKETS_HOURS = config.getint('cache', 'tickets', fallback=24 * 3) + ENTROPY = { 'order_code': config.getint('entropy', 'order_code', fallback=5), 'ticket_secret': config.getint('entropy', 'ticket_secret', fallback=32),