Files
msw/core/core.go
2024-05-16 15:51:06 +08:00

48 lines
896 B
Go

package core
import (
"log"
"msw/proto"
"msw/rpc"
"msw/shell"
"net"
"time"
"google.golang.org/grpc"
"google.golang.org/grpc/keepalive"
)
var kaep = keepalive.EnforcementPolicy{
MinTime: 5 * time.Second,
PermitWithoutStream: true,
}
var kasp = keepalive.ServerParameters{
Time: 1 * time.Second,
Timeout: 5 * time.Second,
}
func Start() {
log.Println("Starting main loop")
go shell.ExecuteOne("./resources/node_exporter")
go shell.ExecuteOne("./resources/ipmi_exporter")
go func() {
listAddr := "0.0.0.0:3939"
list, err := net.Listen("tcp", listAddr)
if err != nil {
log.Fatal(err)
}
s := grpc.NewServer(
grpc.KeepaliveEnforcementPolicy(kaep),
grpc.KeepaliveParams(kasp),
)
proto.RegisterMSWServer(s, &rpc.MSWServer{})
log.Println("RPC Server started on", listAddr)
if err := s.Serve(list); err != nil {
log.Fatal(err)
}
}()
}