Adds a scheduled task to remove old notification entries from the database

This commit is contained in:
Oliver 2021-11-04 01:31:26 +11:00
parent 6c724556f1
commit 3a61d11f5a
4 changed files with 37 additions and 1 deletions

View File

@ -76,6 +76,12 @@ class InvenTreeConfig(AppConfig):
minutes=30, minutes=30,
) )
# Delete old notification records
InvenTree.tasks.schedule_task(
'common.tasks.delete_old_notifications',
schedule_type=Schedule.DAILY,
)
def update_exchange_rates(self): def update_exchange_rates(self):
""" """
Update exchange rates each time the server is started, *if*: Update exchange rates each time the server is started, *if*:

View File

@ -17,7 +17,7 @@ from company.models import Company
from part.models import Part from part.models import Part
logger = logging.getLogger("inventree-thumbnails") logger = logging.getLogger('inventree')
class Command(BaseCommand): class Command(BaseCommand):

29
InvenTree/common/tasks.py Normal file
View File

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import logging
from datetime import timedelta, datetime
from django.core.exceptions import AppRegistryNotReady
logger = logging.getLogger('inventree')
def delete_old_notifications():
"""
Remove old notifications from the database.
Anything older than ~3 months is removed
"""
try:
from common.models import NotificationEntry
except AppRegistryNotReady:
logger.info("Could not perform 'delete_old_notifications' - App registry not ready")
return
before = datetime.now() - timedelta(days=90)
# Delete notification records before the specified date
NotificationEntry.objects.filter(updated__lte=before).delete()

View File

@ -286,6 +286,7 @@ def content_excludes():
"users.owner", "users.owner",
"exchange.rate", "exchange.rate",
"exchange.exchangebackend", "exchange.exchangebackend",
"common.notificationentry",
] ]
output = "" output = ""