Documentation
¶
Overview ¶
Package redis provides a Redis client (built on go-redis) with helpers for distributed locks and priority queues.
Index ¶
Constants ¶
View Source
const ( ErrCodeRedisPingErr = "RDS-001" ErrCodeRedisPriorityQueuePushErr = "RDS-002" ErrCodeRedisPriorityQueuePopErr = "RDS-003" ErrCodeRedisPriorityQueuePopRemoveErr = "RDS-004" )
View Source
const (
NotFound = redis.Nil
)
Variables ¶
View Source
var ( ErrRedisPingErr = func(cause error) error { return jet.NewAppErrBuilder(ErrCodeRedisPingErr, "").Wrap(cause).Err() } ErrRedisPriorityQueuePushErr = func(ctx context.Context, cause error) error { return jet.NewAppErrBuilder(ErrCodeRedisPriorityQueuePushErr, "priority queue: push").Wrap(cause).Err() } ErrRedisPriorityQueuePopErr = func(ctx context.Context, cause error) error { return jet.NewAppErrBuilder(ErrCodeRedisPriorityQueuePopErr, "priority queue: pop").Wrap(cause).Err() } ErrRedisPriorityQueuePopRemoveErr = func(ctx context.Context, cause error) error { return jet.NewAppErrBuilder(ErrCodeRedisPriorityQueuePopRemoveErr, "priority queue: pop and remove").Wrap(cause).Err() } )
Functions ¶
This section is empty.
Types ¶
type PriorityQueue ¶
type PriorityQueue[T any] interface { // Push pushes item to queue with the given priority Push(ctx context.Context, item T, priority int) error // PopManyAndRemove pops requested number of items according to priority and remove them atomically PopManyAndRemove(ctx context.Context, numItems int) ([]T, error) // Pop pops requested number of items Pop(ctx context.Context, numItems int) ([]T, error) }
func NewPriorityQueue ¶
func NewPriorityQueue[T any](queue string, redis *Redis) PriorityQueue[T]
Click to show internal directories.
Click to hide internal directories.