42 lines
739 B
Go
42 lines
739 B
Go
package health
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
type GetKafkaConsumerFunc func() (KafkaConnCheckInterface, error)
|
|
|
|
func NewKafkaCheck(fn GetKafkaConsumerFunc) CheckFunc {
|
|
return func(ctx context.Context) error {
|
|
conn, err := fn()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return conn.Check(ctx)
|
|
}
|
|
}
|
|
|
|
type KafkaConnCheckInterface interface {
|
|
Check(ctx context.Context) error
|
|
}
|
|
|
|
type GetMultiKafkaConsumerFunc func() ([]KafkaConnCheckInterface, error)
|
|
|
|
func NewKafkaMultiCheck(fn GetMultiKafkaConsumerFunc) CheckFunc {
|
|
return func(ctx context.Context) error {
|
|
conns, err := fn()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
for _, connection := range conns {
|
|
err = connection.Check(ctx)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return err
|
|
}
|
|
}
|