mirror of
https://github.com/huggingface/text-generation-inference.git
synced 2025-09-11 20:34:54 +00:00
Better graceful shutdown.
This commit is contained in:
parent
007d5e54aa
commit
e2ab122843
@ -2,6 +2,7 @@ import asyncio
|
|||||||
import os
|
import os
|
||||||
import torch
|
import torch
|
||||||
import time
|
import time
|
||||||
|
import signal
|
||||||
|
|
||||||
from grpc import aio
|
from grpc import aio
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
@ -19,6 +20,21 @@ from text_generation_server.tracing import UDSOpenTelemetryAioServerInterceptor
|
|||||||
from text_generation_server.models.idefics_causal_lm import IdeficsCausalLMBatch
|
from text_generation_server.models.idefics_causal_lm import IdeficsCausalLMBatch
|
||||||
|
|
||||||
|
|
||||||
|
class SignalHandler:
|
||||||
|
KEEP_PROCESSING = True
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
signal.signal(signal.SIGINT, self.exit_gracefully)
|
||||||
|
signal.signal(signal.SIGTERM, self.exit_gracefully)
|
||||||
|
|
||||||
|
def exit_gracefully(self, signum, frame):
|
||||||
|
print(f"Exiting gracefully: Signal {signum}")
|
||||||
|
self.KEEP_PROCESSING = False
|
||||||
|
|
||||||
|
|
||||||
|
signal_handler = SignalHandler()
|
||||||
|
|
||||||
|
|
||||||
class TextGenerationService(generate_pb2_grpc.TextGenerationServiceServicer):
|
class TextGenerationService(generate_pb2_grpc.TextGenerationServiceServicer):
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
@ -231,11 +247,8 @@ def serve(
|
|||||||
|
|
||||||
logger.info("Server started at {}".format(local_url))
|
logger.info("Server started at {}".format(local_url))
|
||||||
|
|
||||||
try:
|
while signal_handler.KEEP_PROCESSING:
|
||||||
await server.wait_for_termination()
|
await asyncio.sleep(0.5)
|
||||||
except KeyboardInterrupt:
|
|
||||||
logger.info("Signal received. Shutting down")
|
|
||||||
await server.stop(0)
|
|
||||||
|
|
||||||
asyncio.run(
|
asyncio.run(
|
||||||
serve_inner(
|
serve_inner(
|
||||||
|
Loading…
Reference in New Issue
Block a user