mirror of
https://git.mirrors.martin98.com/https://github.com/bytedance/deer-flow
synced 2025-08-15 23:05:54 +08:00
Fix/server error handling (#212)
* chore: add venv/ to gitignore * fix: add server error handling and graceful shutdown * Fix linting issues in server.py
This commit is contained in:
parent
55ce399969
commit
3ed70e11d5
1
.gitignore
vendored
1
.gitignore
vendored
@ -11,6 +11,7 @@ static/browser_history/*.gif
|
|||||||
|
|
||||||
# Virtual environments
|
# Virtual environments
|
||||||
.venv
|
.venv
|
||||||
|
venv/
|
||||||
|
|
||||||
# Environment variables
|
# Environment variables
|
||||||
.env
|
.env
|
||||||
|
22
server.py
22
server.py
@ -7,7 +7,8 @@ Server script for running the DeerFlow API.
|
|||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import logging
|
import logging
|
||||||
|
import signal
|
||||||
|
import sys
|
||||||
import uvicorn
|
import uvicorn
|
||||||
|
|
||||||
# Configure logging
|
# Configure logging
|
||||||
@ -18,6 +19,17 @@ logging.basicConfig(
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def handle_shutdown(signum, frame):
|
||||||
|
"""Handle graceful shutdown on SIGTERM/SIGINT"""
|
||||||
|
logger.info("Received shutdown signal. Starting graceful shutdown...")
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
|
|
||||||
|
# Register signal handlers
|
||||||
|
signal.signal(signal.SIGTERM, handle_shutdown)
|
||||||
|
signal.signal(signal.SIGINT, handle_shutdown)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# Parse command line arguments
|
# Parse command line arguments
|
||||||
parser = argparse.ArgumentParser(description="Run the DeerFlow API server")
|
parser = argparse.ArgumentParser(description="Run the DeerFlow API server")
|
||||||
@ -50,12 +62,11 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
# Determine reload setting
|
# Determine reload setting
|
||||||
reload = False
|
reload = False
|
||||||
|
|
||||||
# Command line arguments override defaults
|
|
||||||
if args.reload:
|
if args.reload:
|
||||||
reload = True
|
reload = True
|
||||||
|
|
||||||
logger.info("Starting DeerFlow API server")
|
try:
|
||||||
|
logger.info(f"Starting DeerFlow API server on {args.host}:{args.port}")
|
||||||
uvicorn.run(
|
uvicorn.run(
|
||||||
"src.server:app",
|
"src.server:app",
|
||||||
host=args.host,
|
host=args.host,
|
||||||
@ -63,3 +74,6 @@ if __name__ == "__main__":
|
|||||||
reload=reload,
|
reload=reload,
|
||||||
log_level=args.log_level,
|
log_level=args.log_level,
|
||||||
)
|
)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Failed to start server: {str(e)}")
|
||||||
|
sys.exit(1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user