mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-22 21:44:18 +02:00
fix: wait for HTTP server readiness via httpx request
This commit is contained in:
parent
7e4c854625
commit
bc587208aa
1 changed files with 9 additions and 2 deletions
|
|
@ -212,8 +212,15 @@ async def run_server_async(
|
|||
# Wait for server lifespan to be ready
|
||||
await server._started.wait()
|
||||
|
||||
# Give uvicorn a moment to bind the port after lifespan is ready
|
||||
await asyncio.sleep(0.1)
|
||||
# Wait for HTTP server to be ready by making a request
|
||||
url = f"http://{host}:{port}{path}"
|
||||
async with httpx.AsyncClient() as client:
|
||||
for _ in range(50): # 50 * 0.1s = 5s timeout
|
||||
try:
|
||||
await client.get(url, timeout=0.1)
|
||||
break
|
||||
except (httpx.ConnectError, httpx.TimeoutException):
|
||||
await asyncio.sleep(0.1)
|
||||
|
||||
try:
|
||||
yield f"http://{host}:{port}{path}"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue