Skip to content

Commit dd3ebdd

Browse files
committed
Set keepalive policy for prism grpc server.
1 parent f22d2bc commit dd3ebdd

File tree

1 file changed

+8
-0
lines changed
  • sdks/go/pkg/beam/runners/prism/internal/jobservices

1 file changed

+8
-0
lines changed

sdks/go/pkg/beam/runners/prism/internal/jobservices/server.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
jobpb "github.com/apache/beam/sdks/v2/go/pkg/beam/model/jobmanagement_v1"
3131
"github.com/apache/beam/sdks/v2/go/pkg/beam/runners/prism/internal/worker"
3232
"google.golang.org/grpc"
33+
"google.golang.org/grpc/keepalive"
3334
)
3435

3536
type Server struct {
@@ -78,8 +79,15 @@ func NewServer(port int, execute func(*Job)) *Server {
7879
logger: slog.Default(), // TODO substitute with a configured logger.
7980
}
8081
s.logger.Info("Serving JobManagement", slog.String("endpoint", s.Endpoint()))
82+
83+
// Define the keepalive enforcement policy
84+
ep := keepalive.EnforcementPolicy{
85+
MinTime: 20 * time.Second, // Minimum duration a client should wait before sending a keepalive ping
86+
PermitWithoutStream: true, // Allow pings even if there are no active streams
87+
}
8188
opts := []grpc.ServerOption{
8289
grpc.MaxRecvMsgSize(math.MaxInt32),
90+
grpc.KeepaliveEnforcementPolicy(ep),
8391
}
8492
s.server = grpc.NewServer(opts...)
8593
jobpb.RegisterJobServiceServer(s.server, s)

0 commit comments

Comments
 (0)