queue

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultCreatedAtField = "created_at"
View Source
const DefaultIdField = "id"
View Source
const DefaultPayloadField = "payload"
View Source
const DefaultTableName = "barn_queue"

Variables

This section is empty.

Functions

This section is empty.

Types

type Message

type Message struct {
	Id        int
	CreatedAt time.Time
	Payload   any
}

func (Message) LogValue

func (e Message) LogValue() slog.Value

type MessageHandler

type MessageHandler func(tx *sql.Tx, message *Message) error

type PostgresQueueRepository added in v0.2.6

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

func (*PostgresQueueRepository) Create added in v0.2.6

func (r *PostgresQueueRepository) Create(tx *sql.Tx, m *Message) error

func (*PostgresQueueRepository) CreateTable added in v0.2.6

func (r *PostgresQueueRepository) CreateTable(tx *sql.Tx) error

func (*PostgresQueueRepository) Delete added in v0.3.0

func (r *PostgresQueueRepository) Delete(tx *sql.Tx, m *Message) error

func (*PostgresQueueRepository) DeleteAll added in v0.2.6

func (r *PostgresQueueRepository) DeleteAll(tx *sql.Tx) error

func (*PostgresQueueRepository) FindNext added in v0.2.6

func (r *PostgresQueueRepository) FindNext(tx *sql.Tx) (*Message, error)

type QueueQueryConfig added in v0.2.6

type QueueQueryConfig struct {
	TableName      string
	IdField        string
	CreatedAtField string
	PayloadField   string
}

type QueueRepository added in v0.2.6

type QueueRepository interface {
	FindNext(tx *sql.Tx) (*Message, error)
	Create(tx *sql.Tx, message *Message) error
	Delete(tx *sql.Tx, message *Message) error
}

func NewPostgresQueueRepository added in v0.2.6

func NewPostgresQueueRepository(config ...QueueQueryConfig) QueueRepository

type Worker

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

func NewWorker

func NewWorker(db *sql.DB, config *WorkerConfig) *Worker

func (*Worker) Start

func (w *Worker) Start()

func (*Worker) StartContext

func (w *Worker) StartContext(ctx context.Context)

func (*Worker) Stop

func (w *Worker) Stop()

type WorkerConfig

type WorkerConfig struct {
	Log        *slog.Logger
	Repository QueueRepository
	Cron       string
	Handler    MessageHandler
}

Jump to

Keyboard shortcuts

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