Documentation
¶
Overview ¶
Package gxfilter provides a interface for service filter
Package gxfilter provides a interface for service filter ¶
Package gxfilter provides a interface for service filter
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrNotFound = jerrors.Errorf("not found") ErrNoneAvailable = jerrors.Errorf("none available") ErrRunOutAllServiceNodes = jerrors.Errorf("has used out all provider nodes") )
View Source
var (
ErrServiceArrayEmpty = jerrors.New("ServiceArray empty")
)
Functions ¶
This section is empty.
Types ¶
type Filter ¶
type Filter interface {
Options() Options
GetService(gxregistry.ServiceAttr) ([]*gxregistry.Service, error)
Filter(gxregistry.ServiceAttr) (*ServiceArray, error)
CheckServiceAlive(gxregistry.ServiceAttr, *ServiceArray) bool
Close() error
}
Filter used to get service nodes from registry.
type Option ¶
type Option func(*Options)
Option used to initialise the filter
func WithContext ¶
func WithContext(ctx *gxcontext.ValuesContext) Option
func WithRegistry ¶
func WithRegistry(r gxregistry.Registry) Option
WithRegistry sets the registry used by the filter
type Options ¶
type Options struct {
Registry gxregistry.Registry
Context *gxcontext.ValuesContext
}
type ServiceArray ¶ added in v0.3.1
type ServiceArray struct {
Arr []*gxregistry.Service
Active time.Time
// contains filtered or unexported fields
}
func NewServiceArray ¶ added in v0.3.1
func NewServiceArray(Arr []*gxregistry.Service) *ServiceArray
func (*ServiceArray) Add ¶ added in v0.3.1
func (s *ServiceArray) Add(service *gxregistry.Service, ttl time.Duration)
func (*ServiceArray) Del ¶ added in v0.3.1
func (s *ServiceArray) Del(service *gxregistry.Service, ttl time.Duration)
func (*ServiceArray) Select ¶ added in v0.3.1
func (s *ServiceArray) Select(ctx context.Context, hash ServiceHash) (*gxregistry.Service, error)
func (ServiceArray) String ¶ added in v0.3.1
func (s ServiceArray) String() string
type ServiceHash ¶ added in v0.3.1
type ServiceHash func(context.Context, *ServiceArray) (*gxregistry.Service, error)
ServiceHash is a user service hash interface to select a service provider. @context is transfered from ServiceArray::Select
Click to show internal directories.
Click to hide internal directories.