Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
dynamo
Commits
fb213a2f
Unverified
Commit
fb213a2f
authored
Jul 03, 2025
by
Hongkuan Zhou
Committed by
GitHub
Jul 03, 2025
Browse files
feat: graceful shutdown for sglang example (#1764)
parent
8bfc61ac
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
38 additions
and
0 deletions
+38
-0
examples/sglang/components/decode_worker.py
examples/sglang/components/decode_worker.py
+19
-0
examples/sglang/components/worker.py
examples/sglang/components/worker.py
+19
-0
No files found.
examples/sglang/components/decode_worker.py
View file @
fb213a2f
...
@@ -17,6 +17,7 @@ from __future__ import annotations
...
@@ -17,6 +17,7 @@ from __future__ import annotations
import
asyncio
import
asyncio
import
logging
import
logging
import
signal
import
sys
import
sys
import
msgspec
import
msgspec
...
@@ -54,8 +55,26 @@ class DecodeRequestHandler:
...
@@ -54,8 +55,26 @@ class DecodeRequestHandler:
yield
result
yield
result
async
def
graceful_shutdown
(
runtime
):
logging
.
info
(
"Received shutdown signal, shutting down DistributedRuntime"
)
runtime
.
shutdown
()
logging
.
info
(
"DistributedRuntime shutdown complete"
)
@
dynamo_worker
(
static
=
False
)
@
dynamo_worker
(
static
=
False
)
async
def
worker
(
runtime
:
DistributedRuntime
):
async
def
worker
(
runtime
:
DistributedRuntime
):
# Set up signal handler for graceful shutdown
loop
=
asyncio
.
get_running_loop
()
def
signal_handler
():
# Schedule the shutdown coroutine instead of calling it directly
asyncio
.
create_task
(
graceful_shutdown
(
runtime
))
for
sig
in
(
signal
.
SIGTERM
,
signal
.
SIGINT
):
loop
.
add_signal_handler
(
sig
,
signal_handler
)
logging
.
info
(
"Signal handlers set up for graceful shutdown"
)
server_args
=
parse_sglang_args_inc
(
sys
.
argv
[
1
:])
server_args
=
parse_sglang_args_inc
(
sys
.
argv
[
1
:])
await
init
(
runtime
,
server_args
)
await
init
(
runtime
,
server_args
)
...
...
examples/sglang/components/worker.py
View file @
fb213a2f
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
import
asyncio
import
asyncio
import
logging
import
logging
import
random
import
random
import
signal
import
socket
import
socket
import
sys
import
sys
from
typing
import
Any
,
Dict
,
Optional
,
Union
from
typing
import
Any
,
Dict
,
Optional
,
Union
...
@@ -242,8 +243,26 @@ class RequestHandler:
...
@@ -242,8 +243,26 @@ class RequestHandler:
pass
pass
async
def
graceful_shutdown
(
runtime
):
logging
.
info
(
"Received shutdown signal, shutting down DistributedRuntime"
)
runtime
.
shutdown
()
logging
.
info
(
"DistributedRuntime shutdown complete"
)
@
dynamo_worker
(
static
=
False
)
@
dynamo_worker
(
static
=
False
)
async
def
worker
(
runtime
:
DistributedRuntime
):
async
def
worker
(
runtime
:
DistributedRuntime
):
# Set up signal handler for graceful shutdown
loop
=
asyncio
.
get_running_loop
()
def
signal_handler
():
# Schedule the shutdown coroutine instead of calling it directly
asyncio
.
create_task
(
graceful_shutdown
(
runtime
))
for
sig
in
(
signal
.
SIGTERM
,
signal
.
SIGINT
):
loop
.
add_signal_handler
(
sig
,
signal_handler
)
logging
.
info
(
"Signal handlers set up for graceful shutdown"
)
server_args
=
parse_sglang_args_inc
(
sys
.
argv
[
1
:])
server_args
=
parse_sglang_args_inc
(
sys
.
argv
[
1
:])
await
init
(
runtime
,
server_args
)
await
init
(
runtime
,
server_args
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment