|
|
|
@ -227,6 +227,7 @@ class MSServiceImpl final : public MSService::Service {
|
|
|
|
|
Status Server::BuildAndStart() {
|
|
|
|
|
// handle exit signal
|
|
|
|
|
signal(SIGINT, HandleSignal);
|
|
|
|
|
signal(SIGTERM, HandleSignal);
|
|
|
|
|
Status res;
|
|
|
|
|
auto option_args = Options::Instance().GetArgs();
|
|
|
|
|
std::string server_address = "0.0.0.0:" + std::to_string(option_args->grpc_port);
|
|
|
|
@ -258,21 +259,17 @@ Status Server::BuildAndStart() {
|
|
|
|
|
}
|
|
|
|
|
g_ctx = ctx;
|
|
|
|
|
#endif
|
|
|
|
|
MSServiceImpl service;
|
|
|
|
|
MSServiceImpl msService;
|
|
|
|
|
grpc::EnableDefaultHealthCheckService(true);
|
|
|
|
|
grpc::reflection::InitProtoReflectionServerBuilderPlugin();
|
|
|
|
|
// Set the port is not reuseable
|
|
|
|
|
auto option = grpc::MakeChannelArgumentOption(GRPC_ARG_ALLOW_REUSEPORT, 0);
|
|
|
|
|
grpc::ServerBuilder builder;
|
|
|
|
|
builder.SetOption(std::move(option));
|
|
|
|
|
builder.SetMaxMessageSize(uint32max);
|
|
|
|
|
// Listen on the given address without any authentication mechanism.
|
|
|
|
|
builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
|
|
|
|
|
// Register "service" as the instance through which we'll communicate with
|
|
|
|
|
// clients. In this case it corresponds to an *synchronous* service.
|
|
|
|
|
builder.RegisterService(&service);
|
|
|
|
|
// Finally assemble the server.
|
|
|
|
|
std::unique_ptr<grpc::Server> server(builder.BuildAndStart());
|
|
|
|
|
grpc::ServerBuilder serverBuilder;
|
|
|
|
|
serverBuilder.SetOption(std::move(option));
|
|
|
|
|
serverBuilder.SetMaxMessageSize(uint32max);
|
|
|
|
|
serverBuilder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
|
|
|
|
|
serverBuilder.RegisterService(&msService);
|
|
|
|
|
std::unique_ptr<grpc::Server> server(serverBuilder.BuildAndStart());
|
|
|
|
|
if (server == nullptr) {
|
|
|
|
|
MS_LOG(ERROR) << "The serving server create failed";
|
|
|
|
|
ClearEnv();
|
|
|
|
@ -280,7 +277,7 @@ Status Server::BuildAndStart() {
|
|
|
|
|
}
|
|
|
|
|
auto grpc_server_run = [&server]() { server->Wait(); };
|
|
|
|
|
std::thread serving_thread(grpc_server_run);
|
|
|
|
|
MS_LOG(INFO) << "Server listening on " << server_address << std::endl;
|
|
|
|
|
MS_LOG(INFO) << "MS Serving listening on " << server_address;
|
|
|
|
|
auto exit_future = exit_requested.get_future();
|
|
|
|
|
exit_future.wait();
|
|
|
|
|
ClearEnv();
|
|
|
|
|