package httpsched
import "github.com/mesos/mesos-go/api/v1/lib/httpcli/httpsched"
Index ¶
- Variables
- func NewCaller(cl *httpcli.Client, opts ...Option) calls.Caller
- type Caller
- type Notification
- type NotificationType
- type Option
- func AllowReconnection(v bool) Option
- func Listener(l func(Notification)) Option
- func MaxRedirects(mr int) Option
- type RedirectSettings
- type StateError
Variables ¶
var ( DefaultRedirectSettings = RedirectSettings{ MaxAttempts: 9, MaxBackoffPeriod: 13 * time.Second, MinBackoffPeriod: 500 * time.Millisecond, } )
var DisconnectionDetector = func(disconnect func()) mesos.ResponseDecorator { var disconnectOnce sync.Once disconnectF := func() { disconnectOnce.Do(disconnect) } closeF := mesos.CloseFunc(func() (_ error) { disconnectF(); return }) return mesos.ResponseDecoratorFunc(func(resp mesos.Response) mesos.Response { return &mesos.ResponseWrapper{ Response: resp, Decoder: disconnectionDecoder(resp, disconnectF), Closer: closeF, } }) }
DisconnectionDetector is a programmable response decorator that attempts to detect errors that should transition the state from "connected" to "disconnected". Detector implementations are expected to invoke the `disconnect` callback in order to initiate the disconnection.
The default implementation will transition to a disconnected state when:
- an error occurs while decoding an object from the subscription stream
- mesos reports an ERROR-type scheduler.Event object via the subscription stream
- an object on the stream does not decode to a *scheduler.Event (sanity check)
Consumers of this package may choose to override default behavior by overwriting the default value of this var, but should exercise caution: failure to properly transition to a disconnected state may cause subsequent Call operations to fail (without recourse).
Functions ¶
func NewCaller ¶
NewCaller returns a scheduler API Client in the form of a Caller. Concurrent invocations of Call upon the returned caller are safely executed in a serial fashion. It is expected that there are no other users of the given Client since its state may be modified by this impl.
Types ¶
type Caller ¶
Caller is the public interface a framework scheduler's should consume
type Notification ¶
type Notification struct { Type NotificationType }
Notification objects are sent to a registered client listener (see Listener) when the state of the scheduler client changes (e.g. from disconnected to connected).
type NotificationType ¶
type NotificationType uint8
const ( NotificationUndefined NotificationType = iota NotificationDisconnected NotificationConnected )
func (NotificationType) String ¶
func (t NotificationType) String() string
type Option ¶
type Option func(*client) Option
Option is a functional configuration option type
func AllowReconnection ¶
AllowReconnection allows a subsequent SUBSCRIBE call before a prior SUBSCRIBE has experienced a network or protocol error. Useful in concert with heartbeat detection and for other edge error cases not handled by the connection state machine.
func Listener ¶
func Listener(l func(Notification)) Option
func MaxRedirects ¶
MaxRedirects is a functional option that sets the maximum number of per-call HTTP redirects for a scheduler client
type RedirectSettings ¶
type RedirectSettings struct { MaxAttempts int // per httpDo invocation MaxBackoffPeriod time.Duration // should be more than minBackoffPeriod MinBackoffPeriod time.Duration // should be less than maxBackoffPeriod }
type StateError ¶
type StateError string
func (StateError) Error ¶
func (err StateError) Error() string
Source Files ¶
- Version
- v0.0.8
- Published
- Jul 26, 2018
- Platform
- js/wasm
- Imports
- 15 packages
- Last checked
- 32 minutes ago –
Tools for package owners.