fix processupdates… again

This commit is contained in:
Laura Klünder 2024-09-17 16:01:47 +02:00
parent 726d02f014
commit 6a83146f5c
2 changed files with 6 additions and 4 deletions

View file

@ -201,6 +201,8 @@ class MapUpdate(models.Model):
last_geometry_update = ([None] + [update.geometries_changed for update in new_updates])[-1] last_geometry_update = ([None] + [update.geometries_changed for update in new_updates])[-1]
if last_geometry_update is not None: if last_geometry_update is not None:
geometry_update_cache_key = MapUpdate.build_cache_key(last_geometry_update.to_tuple)
from c3nav.mapdata.utils.cache.changes import changed_geometries from c3nav.mapdata.utils.cache.changes import changed_geometries
changed_geometries.reset() changed_geometries.reset()
@ -230,7 +232,7 @@ class MapUpdate(models.Model):
logger.info('Rebuilding level render data...') logger.info('Rebuilding level render data...')
from c3nav.mapdata.render.renderdata import LevelRenderData from c3nav.mapdata.render.renderdata import LevelRenderData
LevelRenderData.rebuild(update_cache_key) LevelRenderData.rebuild(geometry_update_cache_key)
transaction.on_commit( transaction.on_commit(
lambda: cache.set('mapdata:last_processed_geometries_update', last_geometry_update.to_tuple, None) lambda: cache.set('mapdata:last_processed_geometries_update', last_geometry_update.to_tuple, None)

View file

@ -55,7 +55,7 @@ class LevelRenderData:
darken_area: MultiPolygon | None = None darken_area: MultiPolygon | None = None
@staticmethod @staticmethod
def rebuild(update_cache_key, geometry_update_cache_key): def rebuild(update_cache_key):
# Levels are automatically sorted by base_altitude, ascending # Levels are automatically sorted by base_altitude, ascending
levels = tuple(Level.objects.prefetch_related('altitudeareas', 'buildings', 'doors', 'spaces', levels = tuple(Level.objects.prefetch_related('altitudeareas', 'buildings', 'doors', 'spaces',
'spaces__holes', 'spaces__areas', 'spaces__columns', 'spaces__holes', 'spaces__areas', 'spaces__columns',
@ -352,9 +352,9 @@ class LevelRenderData:
package.add_level(render_level.pk, theme, map_history, access_restriction_affected) package.add_level(render_level.pk, theme, map_history, access_restriction_affected)
render_data.save(geometry_update_cache_key, render_level.pk, theme) render_data.save(update_cache_key, render_level.pk, theme)
package.save_all(geometry_update_cache_key) package.save_all(update_cache_key)
cached = LocalContext() cached = LocalContext()