File tree Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Expand file tree Collapse file tree 1 file changed +9
-1
lines changed Original file line number Diff line number Diff line change 16
16
17
17
import asyncio
18
18
import os
19
+ import signal
19
20
20
21
import grpc
21
22
from grpc_reflection .v1alpha import reflection
31
32
fnv1beta1 .DESCRIPTOR .services_by_name ["FunctionRunnerService" ].full_name ,
32
33
)
33
34
35
+ SHUTDOWN_GRACE_PERIOD_SECONDS = 5
36
+
34
37
35
38
def load_credentials (tls_certs_dir : str ) -> grpc .ServerCredentials :
36
39
"""Load TLS credentials for a composition function gRPC server.
@@ -90,6 +93,11 @@ def serve(
90
93
91
94
server = grpc .aio .server ()
92
95
96
+ loop .add_signal_handler (
97
+ signal .SIGTERM ,
98
+ lambda : asyncio .ensure_future (server .stop (grace = SHUTDOWN_GRACE_PERIOD_SECONDS )),
99
+ )
100
+
93
101
grpcv1 .add_FunctionRunnerServiceServicer_to_server (function , server )
94
102
grpcv1beta1 .add_FunctionRunnerServiceServicer_to_server (
95
103
BetaFunctionRunner (wrapped = function ), server
@@ -116,7 +124,7 @@ async def start():
116
124
try :
117
125
loop .run_until_complete (start ())
118
126
finally :
119
- loop .run_until_complete (server .stop (grace = 5 ))
127
+ loop .run_until_complete (server .stop (grace = SHUTDOWN_GRACE_PERIOD_SECONDS ))
120
128
loop .close ()
121
129
122
130
You can’t perform that action at this time.
0 commit comments