models

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2024 License: AGPL-3.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FilterCriteria

type FilterCriteria struct {
	MessageID int64

	// 0 means unbounded
	DeliverAtStart int
	DeliverAtEnd   int

	// status is an OR filter
	Status []MessageStatus

	// kv is an AND filter
	KV map[string]string

	// Smallest message ID to return. Message IDs are Snowflake IDs
	MinMessageID int64

	// How many message IDs to return
	Limit int
}

type Message

type Message struct {
	ID        int64         `db:"id"`
	TenantID  int64         `db:"tenant_id"`
	DeliverAt int           `db:"deliver_at"`
	UpdatedAt int           `db:"updated_at"`
	RequeueIn int           `db:"requeue_in"`
	Status    MessageStatus `db:"status"`
	Message   []byte        `db:"message"`

	// Only used for DB
	QueueID int64 `db:"queue_id"`

	KeyValues map[string]string
}

func (Message) Base64Decode

func (m Message) Base64Decode() []byte

func (Message) IsJSON

func (m Message) IsJSON() bool

type MessageStatus

type MessageStatus uint8
const (
	MessageStatusQueued   MessageStatus = 1
	MessageStatusDequeued MessageStatus = 2
)

func (MessageStatus) String added in v0.1.1

func (s MessageStatus) String() string

type Queue

type Queue interface {
	CreateQueue(tenantId int64, queue string) error
	DeleteQueue(tenantId int64, queue string) error
	ListQueues(tenantId int64) ([]string, error)

	Enqueue(tenantId int64, queue string, message string, kv map[string]string, delay int) (int64, error)
	Dequeue(tenantId int64, queue string, numToDequeue int, requeueIn int) ([]*Message, error)

	Peek(tenantId int64, queue string, messageId int64) *Message
	Stats(tenantId int64, queue string) QueueStats
	Filter(tenantId int64, queue string, filterCriteria FilterCriteria) []int64

	Delete(tenantId int64, queue string, messageId int64) error

	Shutdown() error
}

type QueueStats

type QueueStats struct {
	Counts        map[MessageStatus]int
	TotalMessages int
}

type TenantManager

type TenantManager interface {
	GetTenant(r *http.Request) (int64, error)
	GetAWSSecretKey(accessKey string, region string) (tenantId int64, secretKey string, err error)
}

Jump to

Keyboard shortcuts

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