package gax

import "cloud.google.com/go/bigtable/internal/gax"

Package gax is a snapshot from github.com/googleapis/gax-go/v2 with minor modifications.

Package gax is a snapshot from github.com/googleapis/gax-go/v2 with minor modifications.

Index

Functions

func Invoke

func Invoke(ctx context.Context, stub APICall, opts ...CallOption) error

Invoke calls stub with a child of context modified by the specified options.

Types

type APICall

type APICall func(context.Context) error

APICall is a user defined call stub.

type BackoffSettings

type BackoffSettings struct {
	DelayTimeoutSettings MultipliableDuration
	RPCTimeoutSettings   MultipliableDuration
}

BackoffSettings are parameters to the exponential backoff algorithm for retrying.

type CallOption

type CallOption interface {
	Resolve(*CallSettings)
}

CallOption is a generic interface for modifying the behavior of outbound calls.

func WithDelayTimeoutSettings

func WithDelayTimeoutSettings(initial time.Duration, max time.Duration, multiplier float64) CallOption

WithDelayTimeoutSettings specifies:

func WithRetryCodes

func WithRetryCodes(retryCodes []codes.Code) CallOption

WithRetryCodes sets a list of Google API canonical error codes upon which a retry should be attempted.

type CallSettings

type CallSettings struct {
	Timeout       time.Duration
	RetrySettings RetrySettings
}

CallSettings encapsulates the call settings for a particular API call.

func (CallSettings) Resolve

func (w CallSettings) Resolve(s *CallSettings)

Resolve merges the receiver CallSettings into the given CallSettings.

type MultipliableDuration

type MultipliableDuration struct {
	Initial    time.Duration
	Max        time.Duration
	Multiplier float64
}

MultipliableDuration defines parameters for backoff settings.

type RetrySettings

type RetrySettings struct {
	RetryCodes      map[codes.Code]bool
	BackoffSettings BackoffSettings
}

RetrySettings are per-call configurable settings for retrying upon transient failure.

Source Files

call_option.go invoke.go

Version
v0.40.0
Published
Jun 7, 2019
Platform
windows/amd64
Imports
4 packages
Last checked
31 minutes ago

Tools for package owners.