Unverified Commit 808632d3 authored by Yang, Bo's avatar Yang, Bo Committed by GitHub
Browse files

[BugFix] Prevent the task of `_force_log` from being garbage collected (#4567)

parent 344a5d0c
...@@ -4,6 +4,7 @@ import inspect ...@@ -4,6 +4,7 @@ import inspect
import re import re
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
from http import HTTPStatus from http import HTTPStatus
from typing import Any, Set
import fastapi import fastapi
import uvicorn import uvicorn
...@@ -33,6 +34,8 @@ openai_serving_chat: OpenAIServingChat ...@@ -33,6 +34,8 @@ openai_serving_chat: OpenAIServingChat
openai_serving_completion: OpenAIServingCompletion openai_serving_completion: OpenAIServingCompletion
logger = init_logger(__name__) logger = init_logger(__name__)
_running_tasks: Set[asyncio.Task[Any]] = set()
@asynccontextmanager @asynccontextmanager
async def lifespan(app: fastapi.FastAPI): async def lifespan(app: fastapi.FastAPI):
...@@ -43,7 +46,9 @@ async def lifespan(app: fastapi.FastAPI): ...@@ -43,7 +46,9 @@ async def lifespan(app: fastapi.FastAPI):
await engine.do_log_stats() await engine.do_log_stats()
if not engine_args.disable_log_stats: if not engine_args.disable_log_stats:
asyncio.create_task(_force_log()) task = asyncio.create_task(_force_log())
_running_tasks.add(task)
task.add_done_callback(_running_tasks.remove)
yield yield
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment