cleanup all worker stats when starting up servers

This commit is contained in:
2026-04-04 21:28:26 +02:00
parent 79f23b8be6
commit 9d33c6fded
6 changed files with 109 additions and 10 deletions
+22
View File
@@ -1,4 +1,5 @@
import unittest
from typing import Any, cast
from server.metrics.MetricsManager import MetricsManager
@@ -139,5 +140,26 @@ class TestMetricsManager(unittest.IsolatedAsyncioTestCase):
self.assertEqual(merged["metrics_backend"], "redis")
await manager.close()
async def test_acquire_startup_cleanup_lock_uses_store_for_redis_backend(self):
class FakeStore:
def __init__(self):
self.calls = []
async def acquire_startup_cleanup_lock(self, lock_key:str, ttl_seconds:int=300):
self.calls.append((lock_key, ttl_seconds))
return True
async def close(self):
return None
manager = MetricsManager(backend="redis", key_prefix="snake:metrics:worker")
fake_store = FakeStore()
manager.store = cast(Any, fake_store)
allowed = await manager.acquire_startup_cleanup_lock(180)
self.assertTrue(allowed)
self.assertEqual(fake_store.calls, [("snake:metrics:worker:startup_cleanup_lock", 180)])
await manager.close()
if __name__ == "__main__":
unittest.main()