Skip to content

Commit 020c454

Browse files
committed
invalidate cache as you migrate
1 parent 89bcae3 commit 020c454

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

api/transformerlab/services/migrate_tasks_to_experiment_dirs.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from lab.dirs import get_workspace_dir, set_organization_id as lab_set_org_id
2222

2323
from transformerlab.services import team_service
24+
from transformerlab.services.cache_service import cache
2425

2526
logger = logging.getLogger(__name__)
2627

@@ -105,6 +106,7 @@ async def _migrate_org_tasks(org_id: str) -> dict[str, Any]:
105106
_set_org_context(org_id)
106107
moved_tasks = 0
107108
skipped_tasks = 0
109+
touched_experiment_ids: set[str] = set()
108110

109111
try:
110112
workspace_dir = await get_workspace_dir()
@@ -162,11 +164,26 @@ async def _migrate_org_tasks(org_id: str) -> dict[str, Any]:
162164
await storage.copy_dir(task_dir, dest_dir)
163165
await storage.rm_tree(task_dir)
164166
moved_tasks += 1
167+
touched_experiment_ids.add(str(experiment_id))
168+
169+
# Invalidate task list/detail cache tags for affected experiments so
170+
# clients don't wait for TTL after migration.
171+
for experiment_id in sorted(touched_experiment_ids):
172+
try:
173+
await cache.invalidate(f"tasks:{experiment_id}")
174+
except Exception as exc: # noqa: BLE001
175+
logger.warning(
176+
"Tasks migration: org %s: cache invalidation failed for experiment %s: %s",
177+
org_id,
178+
experiment_id,
179+
exc,
180+
)
165181

166182
return {
167183
"org_id": org_id,
168184
"moved_tasks": moved_tasks,
169185
"skipped_tasks": skipped_tasks,
186+
"cache_invalidated_experiments": sorted(touched_experiment_ids),
170187
"status": "migrated",
171188
}
172189
except Exception as exc: # noqa: BLE001

0 commit comments

Comments
 (0)