engine

package
v0.26.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 3, 2020 License: Apache-2.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	AlertLogStore      alertlog.Store
	AlertStore         alert.Store
	ContactMethodStore contactmethod.Store
	NotificationSender notification.Sender
	UserStore          user.Store
	NotificationStore  notification.Store
	NCStore            notificationchannel.Store

	ConfigSource config.Source

	Keys keyring.Keys

	MaxMessages int

	DisableCycle bool
}

Config contains parameters for controlling how the Engine operates.

type Engine

type Engine struct {
	// contains filtered or unexported fields
}

Engine handles automatic escaltion of unacknowledged(triggered) alerts, as well as passing to-be-sent notifications to the notification.Sender.

Care is taken to ensure only one attempt is made per contact-method at a time, regardless of how many instances of the application may be running.

func NewEngine

func NewEngine(ctx context.Context, db *sql.DB, c *Config) (*Engine, error)

NewEngine will create a new Engine using the passed *sql.DB as a backend. Outgoing notifications will be passed to Sender.

Context is only used for preparing and initializing.

func (*Engine) Pause

func (p *Engine) Pause(ctx context.Context) error

Pause will attempt to gracefully stop engine processing.

func (*Engine) Receive

func (p *Engine) Receive(ctx context.Context, callbackID string, result notification.Result) error

Receive will process a notification result.

func (*Engine) Resume

func (p *Engine) Resume(ctx context.Context) error

Resume will allow the engine to resume processing.

func (*Engine) Run

func (p *Engine) Run(ctx context.Context) error

Run will being the engine loop.

func (*Engine) Shutdown

func (p *Engine) Shutdown(ctx context.Context) error

Shutdown will gracefully shutdown the processor, finishing any ongoing tasks.

func (*Engine) Start added in v0.25.0

func (p *Engine) Start(ctx context.Context, d notification.Dest) error

Start will enable all associated contact methods of `value` with type `t`. This should be invoked if a user, for example, responds with `START` via sms.

func (*Engine) Stop

func (p *Engine) Stop(ctx context.Context, d notification.Dest) error

Stop will disable all associated contact methods of `value` with type `t`. This should be invoked if a user, for example, responds with `STOP` via SMS.

func (*Engine) Trigger

func (p *Engine) Trigger()

Trigger will force notifications to be processed immediately.

func (*Engine) TriggerAndWaitNextCycle added in v0.25.0

func (p *Engine) TriggerAndWaitNextCycle(ctx context.Context) error

TriggerAndWaitNextCycle will force notifications to be processed immediately and will return after the next engine cycle starts and then finishes.

func (*Engine) UpdateStatus

func (p *Engine) UpdateStatus(ctx context.Context, status *notification.MessageStatus) error

UpdateStatus will update the status of a message.

func (*Engine) WaitNextCycle

func (p *Engine) WaitNextCycle(ctx context.Context) error

WaitNextCycle will return after the next engine cycle starts and then finishes.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL