queuerunner

package
v0.0.0-...-c20d9b3 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2025 License: AGPL-3.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultQueueName  = "monkeycode:tasks:default"
	ProcessingSetName = "monkeycode:tasks:processing"
	TaskKeyPrefix     = "monkeycode:task:"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type QueueRunner

type QueueRunner[T any] struct {
	// contains filtered or unexported fields
}

func NewQueueRunner

func NewQueueRunner[T any](
	cfg *config.Config,
	rdb *redis.Client,
	logger *slog.Logger,
) *QueueRunner[T]

func (*QueueRunner[T]) Enqueue

func (r *QueueRunner[T]) Enqueue(ctx context.Context, id string, data T, h TaskHandler[T]) (string, error)

func (*QueueRunner[T]) GetTask

func (r *QueueRunner[T]) GetTask(ctx context.Context, taskID string) (*Task[T], error)

func (*QueueRunner[T]) Run

func (r *QueueRunner[T]) Run(ctx context.Context) error

func (*QueueRunner[T]) UpdateTaskStatus

func (r *QueueRunner[T]) UpdateTaskStatus(ctx context.Context, taskID string, status TaskStatus, err error) error

type Task

type Task[T any] struct {
	ID        string     `json:"id"`
	Status    TaskStatus `json:"status"`
	Data      T          `json:"data"`
	CreatedAt time.Time  `json:"created_at"`
	UpdatedAt time.Time  `json:"updated_at"`
	Error     string     `json:"error,omitempty"`
}

type TaskHandler

type TaskHandler[T any] func(ctx context.Context, task *Task[T]) error

type TaskStatus

type TaskStatus string
const (
	TaskStatusPending    TaskStatus = "pending"
	TaskStatusProcessing TaskStatus = "processing"
	TaskStatusCompleted  TaskStatus = "completed"
	TaskStatusFailed     TaskStatus = "failed"
)

Jump to

Keyboard shortcuts

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