remove upload files that went beyond their keep_until (#116 / #90, WiP)

django-3.2
Hartmut Holzgraefe 2023-09-22 07:41:21 +00:00
rodzic 4080469a5c
commit 366a62c3d4
1 zmienionych plików z 14 dodań i 4 usunięć

Wyświetl plik

@ -29,17 +29,20 @@ import threading
import time import time
from functools import reduce from functools import reduce
import glob import glob
from datetime import datetime
import django import django
django.setup() django.setup()
from www.maposmatic.models import MapRenderingJob from www.maposmatic.models import MapRenderingJob, UploadFile
from www.settings import RENDERING_RESULT_PATH, RENDERING_RESULT_MAX_SIZE_GB, RENDERING_RESULT_MAX_PURGE_ITERATIONS from www.settings import RENDERING_RESULT_PATH, RENDERING_RESULT_MAX_SIZE_GB, RENDERING_RESULT_MAX_PURGE_ITERATIONS, MEDIA_ROOT
import render import render
from django import db from django import db
LOG = logging.getLogger('maposmatic')
_DEFAULT_POLL_FREQUENCY = 10 # Daemon job polling frequency, in seconds _DEFAULT_POLL_FREQUENCY = 10 # Daemon job polling frequency, in seconds
_RESULT_MSGS = { _RESULT_MSGS = {
@ -265,9 +268,16 @@ class RenderingsGarbageCollector:
pass pass
# records = UploadFile.objects.filter(keep_until__lte = datetime.now())
# for record in records: LOG.info("Cleanup remove old upload files")
files = UploadFile.objects.filter(keep_until__lte = datetime.now())
for file in files:
try:
os.remove(os.path.join(MEDIA_ROOT, file.uploaded_file.name))
LOG.info("Cleanup: removed %s" % file.upload_file.name)
except:
pass
if __name__ == '__main__': if __name__ == '__main__':
if (not os.path.exists(RENDERING_RESULT_PATH) if (not os.path.exists(RENDERING_RESULT_PATH)