Documentation ¶
Overview ¶
Package serfer is a simple library which provides interfaces for handling various Serf events.
This allows for an encapsulation of more complex event processing logic by using separate event handlers based on event type.
Index ¶
Constants ¶
const ( // StatusReap is used to update the status of a node if we // are handling a EventMemberReap StatusReap = serf.MemberStatus(-1) )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type EventHandler ¶
EventHandler processes generic Serf events. Depending on the event type, more processing may be needed.
type MemberEventHandler ¶
type MemberEventHandler interface {
HandleMemberEvent(serf.MemberEvent)
}
MemberEventHandler handles membership change events.
type MemberFailureHandler ¶
type MemberFailureHandler interface {
HandleMemberFailure(serf.MemberEvent)
}
MemberFailureHandler handles member failure events.
type MemberJoinHandler ¶
type MemberJoinHandler interface {
HandleMemberJoin(serf.MemberEvent)
}
MemberJoinHandler handles member join events.
type MemberLeaveHandler ¶
type MemberLeaveHandler interface {
HandleMemberLeave(serf.MemberEvent)
}
MemberLeaveHandler handles member leave events.
type MemberReapHandler ¶
type MemberReapHandler interface {
HandleMemberReap(serf.MemberEvent)
}
MemberReapHandler handles member reap events.
type MemberUpdateHandler ¶
type MemberUpdateHandler interface {
HandleMemberUpdate(serf.MemberEvent)
}
MemberUpdateHandler handles member update events.
type QueryEventHandler ¶
QueryEventHandler handles Serf query events.
type SerfEventHandler ¶
type SerfEventHandler struct { // ServicePrefix is used to filter out unknown events. ServicePrefix string // UserEvent processes known, non-leader election events. UserEvent UserEventHandler // UnknownEventHandler processes unkown events. UnknownEventHandler UnknownEventHandler // Called when a Member joins the cluster. NodeJoined MemberJoinHandler // Called when a Member leaves the cluster by sending a leave message. NodeLeft MemberLeaveHandler // Called when a Member has been detected as failed. NodeFailed MemberFailureHandler // Called when a Member has been Readed from the cluster. NodeReaped MemberReapHandler // Called when a Member has been updated. NodeUpdated MemberUpdateHandler // Called when a serf.Query is received. QueryHandler QueryEventHandler // Logs output Logger log.Logger }
SerfEventHandler is used to dispatch various Serf events to separate event handlers.
func (SerfEventHandler) HandleEvent ¶
func (s SerfEventHandler) HandleEvent(e serf.Event)
HandleEvent processes a generic Serf event and dispatches it to the appropriate destination.
type Serfer ¶
type Serfer interface { // Start starts the serfer goroutine. Start() // Stop stops all event processing and blocks until finished. Stop() }
Serfer processes Serf.Events and is meant to be ran in a goroutine.
type UnknownEventHandler ¶
UnknownEventHandler handles unknown events.
type UserEventHandler ¶
UserEventHandler handles user events.