gsb

package module
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Aug 16, 2021 License: BSD-3-Clause Imports: 19 Imported by: 0

README

Go Service Bus (GSB)

  1. Anything that fails during startup / initialisation should fail immediatley with descriptive STDOUT.
  2. Anything that fails during execution should return an error and be processed by the system, to allow continuous operation.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ResetMqInMemory

func ResetMqInMemory()

func SendEnvelope

func SendEnvelope(q AppResQueue, env Envelope) error

func SendMessage

func SendMessage(q AppResQueue, name string, payload string) error

Types

type AppResDDb

type AppResDDb interface {
	Init() error
	Put(tableName string, item interface{}) error
	Get(tableName string, key map[string]string) (interface{}, error)
}

type AppResDir

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

func NewAppResDir

func NewAppResDir(url *url.URL) *AppResDir

func (*AppResDir) Del

func (dir *AppResDir) Del(name string) error

func (*AppResDir) Get

func (dir *AppResDir) Get(name string) (interface{}, error)

func (*AppResDir) Init

func (dir *AppResDir) Init() error

func (*AppResDir) Put

func (dir *AppResDir) Put(name string, item interface{}) error

type AppResDynamoDb

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

func NewAppResDynamoDb

func NewAppResDynamoDb(url *url.URL) *AppResDynamoDb

func (*AppResDynamoDb) Get

func (ddb *AppResDynamoDb) Get(tableName string, key map[string]string) (interface{}, error)

func (*AppResDynamoDb) Init

func (ddb *AppResDynamoDb) Init() error

func (*AppResDynamoDb) Put

func (ddb *AppResDynamoDb) Put(tableName string, item interface{}) error

type AppResFS

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

func NewAppResFS

func NewAppResFS(url *url.URL) *AppResFS

func (*AppResFS) Del

func (s *AppResFS) Del(path string, name string) error

func (*AppResFS) Get

func (s *AppResFS) Get(path string, name string) ([]byte, error)

func (*AppResFS) Init

func (fs *AppResFS) Init() error

func (*AppResFS) Put

func (s *AppResFS) Put(path string, name string, payload []byte) error

type AppResFileSystem

type AppResFileSystem interface {
	Init() error
	Put(path string, name string, payload []byte) error
	Get(path string, name string) ([]byte, error)
	Del(path string, name string) error
}

type AppResKeyVal

type AppResKeyVal interface {
	Init() error
	Put(key string, item interface{}) error
	Get(key string) (interface{}, error)
	Del(key string) error
}

type AppResQueue

type AppResQueue interface {
	Init() error
	Name() string
	Send(payload string) error
	Retrieve() (*string, error)
	Commit() error
}

type AppResQueueAws

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

func NewAppResQueueAws

func NewAppResQueueAws(url *url.URL) *AppResQueueAws

func (*AppResQueueAws) Commit

func (q *AppResQueueAws) Commit() error

func (*AppResQueueAws) GetQueueUrl

func (q *AppResQueueAws) GetQueueUrl(queueName string) (*sqs.GetQueueUrlOutput, error)

func (*AppResQueueAws) Init

func (q *AppResQueueAws) Init() error

func (*AppResQueueAws) Name

func (q *AppResQueueAws) Name() string

func (*AppResQueueAws) Retrieve

func (q *AppResQueueAws) Retrieve() (*string, error)

func (*AppResQueueAws) Send

func (q *AppResQueueAws) Send(Message string) error

type AppResRedis

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

func NewAppResRedis

func NewAppResRedis(url *url.URL) *AppResRedis

func (*AppResRedis) Del

func (r *AppResRedis) Del(key string) error

func (*AppResRedis) Get

func (r *AppResRedis) Get(key string) (interface{}, error)

func (*AppResRedis) Init

func (r *AppResRedis) Init() error

func (*AppResRedis) Put

func (r *AppResRedis) Put(key string, item interface{}) error

type AppResS3

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

func NewAppResS3

func NewAppResS3(url *url.URL) *AppResS3

func (*AppResS3) Del

func (s *AppResS3) Del(path string, name string) error

func (*AppResS3) Get

func (s *AppResS3) Get(path string, name string) ([]byte, error)

func (*AppResS3) Init

func (s *AppResS3) Init() error

func (*AppResS3) Put

func (s *AppResS3) Put(path string, name string, payload []byte) error

type AppResources

type AppResources struct {
	DDb        map[string]AppResDDb
	KeyVal     map[string]AppResKeyVal
	FileSystem map[string]AppResFileSystem
	Queue      map[string]AppResQueue
}

func NewAppResources

func NewAppResources() *AppResources

func (*AppResources) GetGSBEnvVars

func (ar *AppResources) GetGSBEnvVars() []string

func (*AppResources) Init

func (ar *AppResources) Init()

func (*AppResources) ProcessEnvVar

func (ar *AppResources) ProcessEnvVar(gsbEnvVarStr string) GsbEnvVar

func (*AppResources) ProcessEnvVars

func (ar *AppResources) ProcessEnvVars(gsbEnvVarStrs []string)

type Envelope

type Envelope struct {
	Identifier        string
	Name              string
	Msg               string
	OriginalQueueName string
	Errors            []string
}

func NewEnvelope

func NewEnvelope(QueueName, Name, Message string) (Envelope, error)

func UnmarshalEnvelope

func UnmarshalEnvelope(payload []byte) (*Envelope, error)

func (*Envelope) Marshal

func (env *Envelope) Marshal() ([]byte, error)

type GsbEnvVar

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

type Handler

type Handler struct {
	Name string

	Fn HandlerFn
	// contains filtered or unexported fields
}

type HandlerFn

type HandlerFn func(*HandlerState, string) error

type HandlerState

type HandlerState struct {
	AppResources *AppResources
	Keys         map[string]string
}

func NewHandlerState

func NewHandlerState(appResources *AppResources) *HandlerState

func (*HandlerState) Send

func (hs *HandlerState) Send(queueName string, name string, payload string) error

type Host

type Host struct {
	Name     string
	Mq       Mq
	MqUrl    *url.URL
	ErrorQ   Queue
	Handlers []Handler
	// contains filtered or unexported fields
}

func NewHost

func NewHost() *Host

func (*Host) AddHandler

func (h *Host) AddHandler(name string, f HandlerFn)

func (*Host) Init

func (h *Host) Init()

func (*Host) InitErrorQueue

func (h *Host) InitErrorQueue()

func (*Host) InitMq

func (h *Host) InitMq()

func (*Host) MqCommit

func (h *Host) MqCommit() error

func (*Host) MqRetrieve

func (h *Host) MqRetrieve() *Envelope

func (*Host) ProcessError

func (h *Host) ProcessError(env *Envelope, err error)

func (*Host) ProcessHandlers

func (h *Host) ProcessHandlers(env *Envelope) error

func (*Host) ProcessMessage

func (h *Host) ProcessMessage(env *Envelope)

func (*Host) Run

func (h *Host) Run()

func (*Host) Tick

func (h *Host) Tick()

type Mq

type Mq interface {
	Init() error
	Retrieve() (*string, error)
	Commit() error
}

type MqAws

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

func NewMqAws

func NewMqAws(url *url.URL) *MqAws

func (*MqAws) Commit

func (mq *MqAws) Commit() error

func (*MqAws) Init

func (mq *MqAws) Init() error

func (*MqAws) Retrieve

func (mq *MqAws) Retrieve() (*string, error)

type MqBeanstalk

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

func NewMqBeanstalk

func NewMqBeanstalk(url *url.URL) *MqBeanstalk

func (*MqBeanstalk) Commit

func (mq *MqBeanstalk) Commit() error

func (*MqBeanstalk) Init

func (mq *MqBeanstalk) Init() error

func (*MqBeanstalk) Retrieve

func (mq *MqBeanstalk) Retrieve() (*string, error)

type MqInMemory

type MqInMemory struct {
	List []string
	// contains filtered or unexported fields
}

func NewMqInMemory

func NewMqInMemory(url *url.URL) *MqInMemory

func NewMqInMemoryFromString

func NewMqInMemoryFromString(urlString string) *MqInMemory

func (*MqInMemory) Commit

func (mq *MqInMemory) Commit() error

func (*MqInMemory) Init

func (mq *MqInMemory) Init() error

func (*MqInMemory) Move

func (mq *MqInMemory) Move(fromS string, toS string)

func (*MqInMemory) Name

func (mq *MqInMemory) Name() string

func (*MqInMemory) Retrieve

func (mq *MqInMemory) Retrieve() (*string, error)

func (*MqInMemory) Send

func (mq *MqInMemory) Send(payload string) error

type Queue

type Queue interface {
	Init() error
	Name() string
	Send(payload string) error
	Retrieve() (*string, error)
	Commit() error
}

func NewQueue

func NewQueue(urlString string) Queue

type QueueBeanstalk

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

func NewAppResQueueBeanstalk

func NewAppResQueueBeanstalk(url *url.URL) *QueueBeanstalk

func (*QueueBeanstalk) Commit

func (q *QueueBeanstalk) Commit() error

func (*QueueBeanstalk) Init

func (q *QueueBeanstalk) Init() error

func (*QueueBeanstalk) Name

func (q *QueueBeanstalk) Name() string

func (*QueueBeanstalk) Retrieve

func (q *QueueBeanstalk) Retrieve() (*string, error)

func (*QueueBeanstalk) Send

func (q *QueueBeanstalk) Send(payload string) error

Jump to

Keyboard shortcuts

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