fix telemetry send task isolation

This commit is contained in:
huanghuoguoguo
2026-05-16 10:37:04 +08:00
parent b251fc4b89
commit 87c5aed9e7
2 changed files with 27 additions and 2 deletions

View File

@@ -13,12 +13,11 @@ class TelemetryManager:
await telemetry.send({ ... })
"""
send_tasks: list[asyncio.Task] = []
def __init__(self, ap: core_app.Application):
self.ap = ap
self.telemetry_config = {}
self.send_tasks: list[asyncio.Task] = []
async def initialize(self):
self.telemetry_config = self.ap.instance_config.data.get('space', {})

View File

@@ -0,0 +1,26 @@
from __future__ import annotations
from types import SimpleNamespace
import pytest
from langbot.pkg.telemetry.telemetry import TelemetryManager
@pytest.mark.asyncio
async def test_send_tasks_are_scoped_to_manager_instance(monkeypatch):
async def fake_send(self, payload):
return payload
monkeypatch.setattr(TelemetryManager, 'send', fake_send)
first = TelemetryManager(SimpleNamespace())
second = TelemetryManager(SimpleNamespace())
assert first.send_tasks is not second.send_tasks
await first.start_send_task({'event': 'first'})
await first.send_tasks[0]
assert len(first.send_tasks) == 1
assert second.send_tasks == []