Documentation ¶
Overview ¶
Package rpc implements rpc engine.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrEngineClosed = errors.New("engine was closed")
ErrEngineClosed means that engine was closed.
Functions ¶
Types ¶
type DropHandler ¶ added in v0.25.0
DropHandler handles drop rpc requests.
type Engine ¶
type Engine struct {
// contains filtered or unexported fields
}
Engine handles RPC requests.
func (*Engine) Close ¶
func (e *Engine) Close()
Close gracefully closes the engine. All pending requests will be awaited. All Do method calls of closed engine will return ErrEngineClosed error.
func (*Engine) Do ¶
Do sends request to server and blocks until response is received, performing multiple retries if needed.
func (*Engine) ForceClose ¶ added in v0.21.2
func (e *Engine) ForceClose()
ForceClose forcibly closes the engine. All pending requests will be canceled. All Do method calls of closed engine will return ErrEngineClosed error.
func (*Engine) NotifyAcks ¶
NotifyAcks notifies engine about received acknowledgements.
func (*Engine) NotifyError ¶
NotifyError notifies engine about received RPC error.
type Options ¶
type Options struct { RetryInterval time.Duration MaxRetries int Logger *zap.Logger Clock clock.Clock DropHandler DropHandler }
Options of rpc engine.
type RetryLimitReachedErr ¶
type RetryLimitReachedErr struct {
Retries int
}
RetryLimitReachedErr means that server does not acknowledge request after multiple retries.
func (*RetryLimitReachedErr) Error ¶
func (r *RetryLimitReachedErr) Error() string
func (*RetryLimitReachedErr) Is ¶
func (r *RetryLimitReachedErr) Is(err error) bool
Is reports whether err is RetryLimitReachedErr.