Skip to content

Commit 91fd8c0

Browse files
committed
Ensure that background callback expiry is communicated in MCP tool
1 parent befe692 commit 91fd8c0

6 files changed

Lines changed: 582 additions & 435 deletions

File tree

dash/_callback.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,9 @@ def _setup_background_callback(
427427
)
428428

429429
callback_manager.handle.set(
430-
f"{cache_key}-created_at", datetime.now(timezone.utc).isoformat()
430+
f"{cache_key}-created_at",
431+
datetime.now(timezone.utc).isoformat(),
432+
expire=callback_manager.expire,
431433
)
432434

433435
data = {

dash/mcp/tasks/tasks.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,10 +138,13 @@ def cancel_task(task_id: str) -> Any:
138138
manager.terminate_job(job_id)
139139

140140
now = datetime.now(timezone.utc)
141+
created_at = manager.handle.get(f"{cache_key}-created_at")
142+
manager.handle.delete(f"{cache_key}-created_at")
143+
141144
return CancelTaskResult(
142145
taskId=task_id,
143146
status="cancelled",
144-
createdAt=datetime.fromisoformat(manager.handle.get(f"{cache_key}-created_at") or now.isoformat()),
147+
createdAt=datetime.fromisoformat(created_at) if created_at else now,
145148
lastUpdatedAt=now,
146149
ttl=manager.expire * 1000 if manager.expire else None,
147150
)

tests/integration/mcp/test_background_callbacks.py

Lines changed: 0 additions & 133 deletions
This file was deleted.

0 commit comments

Comments
 (0)