feat: make initializer accept gRPC delay times (#900)

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
This commit is contained in:
Ettore Di Giacinto 2023-08-16 01:11:32 +02:00 committed by GitHub
parent 7ffd21dbc8
commit 0ec695f9e4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 60 additions and 4 deletions

View file

@ -185,13 +185,13 @@ func (ml *ModelLoader) grpcModel(backend string, o *Options) func(string, string
// Wait for the service to start up
ready := false
for i := 0; i < 10; i++ {
for i := 0; i < o.grpcAttempts; i++ {
if client.HealthCheck(context.Background()) {
log.Debug().Msgf("GRPC Service Ready")
ready = true
break
}
time.Sleep(1 * time.Second)
time.Sleep(time.Duration(o.grpcAttemptsDelay) * time.Second)
}
if !ready {

View file

@ -16,6 +16,9 @@ type Options struct {
gRPCOptions *pb.ModelOptions
externalBackends map[string]string
grpcAttempts int
grpcAttemptsDelay int
}
type Option func(*Options)
@ -29,6 +32,18 @@ func WithExternalBackend(name string, uri string) Option {
}
}
func WithGRPCAttempts(attempts int) Option {
return func(o *Options) {
o.grpcAttempts = attempts
}
}
func WithGRPCAttemptsDelay(delay int) Option {
return func(o *Options) {
o.grpcAttemptsDelay = delay
}
}
func WithBackendString(backend string) Option {
return func(o *Options) {
o.backendString = backend
@ -67,8 +82,10 @@ func WithContext(ctx context.Context) Option {
func NewOptions(opts ...Option) *Options {
o := &Options{
gRPCOptions: &pb.ModelOptions{},
context: context.Background(),
gRPCOptions: &pb.ModelOptions{},
context: context.Background(),
grpcAttempts: 20,
grpcAttemptsDelay: 2,
}
for _, opt := range opts {
opt(o)