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.