1234567891011121314151617181920212223242526 |
- from datetime import timedelta
- from django.conf import settings
- from django.utils.timezone import now
- from .models import Issue
- def cleanup_old_issues():
- days = settings.GLITCHTIP_MAX_EVENT_LIFE_DAYS
- # Delete ~1k empty issues at a time until less than 1k remain then delete the rest. Avoids memory overload.
- queryset = Issue.objects.filter(
- issueevent=None, last_seen__lt=now() - timedelta(days=days)
- ).order_by("id")
- while True:
- try:
- empty_issue_delimiter = queryset.values_list("id", flat=True)[
- 1000:1001
- ].get()
- queryset.filter(id__lte=empty_issue_delimiter).delete()
- except Issue.DoesNotExist:
- break
- queryset.delete()
|