delete old cached map tiles
This commit is contained in:
parent
84b5c26f3d
commit
96dc678fe6
2 changed files with 20 additions and 1 deletions
|
@ -7,6 +7,8 @@ from django.utils.http import int_to_base36
|
|||
from django.utils.timezone import make_naive
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from c3nav.mapdata.tasks import delete_old_cached_tiles
|
||||
|
||||
|
||||
class MapUpdate(models.Model):
|
||||
"""
|
||||
|
@ -51,6 +53,6 @@ class MapUpdate(models.Model):
|
|||
from c3nav.mapdata.render.base import LevelGeometries
|
||||
AltitudeArea.recalculate()
|
||||
LevelGeometries.rebuild()
|
||||
|
||||
super().save(**kwargs)
|
||||
cache.set('mapdata:last_update', (self.pk, self.datetime), 900)
|
||||
delete_old_cached_tiles.apply_async(countdown=5)
|
||||
|
|
17
src/c3nav/mapdata/tasks.py
Normal file
17
src/c3nav/mapdata/tasks.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
import os
|
||||
from django.conf import settings
|
||||
|
||||
from c3nav.celery import app
|
||||
|
||||
|
||||
@app.task()
|
||||
def delete_old_cached_tiles(*args, **kwargs):
|
||||
from c3nav.mapdata.models import MapUpdate
|
||||
cache_key = MapUpdate.cache_key()
|
||||
|
||||
for folder in os.listdir(settings.TILES_ROOT):
|
||||
if folder == cache_key:
|
||||
continue
|
||||
fullpath = os.path.join(settings.TILES_ROOT, folder)
|
||||
if os.path.isdir(fullpath):
|
||||
os.system('rm -rf '+fullpath)
|
Loading…
Add table
Add a link
Reference in a new issue