我想在gRPC服务器停止后立即进行一些清理,例如:
func cleanUp(...) (...) {
// do something
}
func main() {
...
sOpts := []grpc.ServerOptions{ /* some opts */ }
sOpts = append(sOpts, grpc.UnaryInterceptor(unaryInterceptor))
sOpts = append(sOpts, grpc.CleanUpInterceptor(cleanUp))
s := grpc.NewServer(sOpts...)
...
}
有办法做到这一点吗?
1条答案
按热度按时间ws51t4hk1#
您可以使用一个
os.Signal
来获取gRPC服务器关闭信号,在cleanup
拦截器中监视此信号,然后在触发此信号时执行清理作业。样本代码