fix migration

This commit is contained in:
2026-06-16 09:45:59 +03:00
parent 9c09152bbf
commit 2f892bef19
+12 -1
View File
@@ -1,6 +1,7 @@
import asyncio import asyncio
import json import json
import threading import threading
from concurrent.futures import ThreadPoolExecutor
from datetime import datetime, timezone from datetime import datetime, timezone
from typing import Any from typing import Any
@@ -24,6 +25,16 @@ class MemoryService:
self.db = db self.db = db
self.user_id = user_id self.user_id = user_id
@staticmethod
def _run_async(coro):
"""Run coroutine from sync code; safe inside FastAPI's running event loop."""
try:
asyncio.get_running_loop()
except RuntimeError:
return asyncio.run(coro)
with ThreadPoolExecutor(max_workers=1) as pool:
return pool.submit(asyncio.run, coro).result()
@staticmethod @staticmethod
def _schedule_rag(coro) -> None: def _schedule_rag(coro) -> None:
def runner() -> None: def runner() -> None:
@@ -260,7 +271,7 @@ class MemoryService:
return await retrieve_memory_facts(query or "", user_id=self.user_id, top_k=top_k) return await retrieve_memory_facts(query or "", user_id=self.user_id, top_k=top_k)
try: try:
rag_facts = asyncio.run(_load()) rag_facts = self._run_async(_load())
except Exception: except Exception:
rag_facts = [] rag_facts = []
if rag_facts: if rag_facts: