queue

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	WorkerPoolSize      int
	MessageTimeout      time.Duration
	ExpiryCheckInterval time.Duration
	RetryInterval       time.Duration
}

Config holds queue manager configuration

func DefaultConfig

func DefaultConfig() Config

DefaultConfig returns default configuration

type Manager

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

Manager handles queue operations and message routing

func NewManager

func NewManager(store store.Store, config Config) *Manager

NewManager creates a new queue manager

func (*Manager) AckMessage

func (m *Manager) AckMessage(ctx context.Context, clientID, messageID string) error

AckMessage acknowledges successful message processing

func (*Manager) CreateQueue

func (m *Manager) CreateQueue(ctx context.Context, queue *types.Queue) error

CreateQueue creates a new queue

func (*Manager) DeleteQueue

func (m *Manager) DeleteQueue(ctx context.Context, queueName string) error

DeleteQueue deletes a queue

func (*Manager) GetClientInfo

func (m *Manager) GetClientInfo(ctx context.Context, clientID string) (*types.Client, error)

GetClientInfo returns information about a client

func (*Manager) GetQueueStats

func (m *Manager) GetQueueStats(ctx context.Context, queueName string) (*types.QueueStats, error)

GetQueueStats returns statistics for a queue

func (*Manager) NackMessage

func (m *Manager) NackMessage(ctx context.Context, clientID, messageID string, reason string) error

NackMessage acknowledges failed message processing

func (*Manager) ReceiveMessages

func (m *Manager) ReceiveMessages(ctx context.Context, clientID string, limit int) ([]*types.Message, error)

ReceiveMessages receives messages for a client

func (*Manager) RegisterClient

func (m *Manager) RegisterClient(ctx context.Context, client *types.Client) error

RegisterClient registers a new client

func (*Manager) SendDirectMessage

func (m *Manager) SendDirectMessage(ctx context.Context, from, to string, payload []byte, opts ...MessageOption) (*types.Message, error)

SendDirectMessage sends a direct message to a client

func (*Manager) Start

func (m *Manager) Start() error

Start starts the queue manager

func (*Manager) Stop

func (m *Manager) Stop() error

Stop stops the queue manager

func (*Manager) SubmitTask

func (m *Manager) SubmitTask(ctx context.Context, from, topic string, payload []byte, opts ...MessageOption) (*types.Message, error)

SubmitTask submits a task message to a topic

func (*Manager) SubscribeToTopic

func (m *Manager) SubscribeToTopic(ctx context.Context, clientID, topic string) error

SubscribeToTopic subscribes a client to a topic

func (*Manager) UnregisterClient

func (m *Manager) UnregisterClient(ctx context.Context, clientID string) error

UnregisterClient unregisters a client

func (*Manager) UnsubscribeFromTopic

func (m *Manager) UnsubscribeFromTopic(ctx context.Context, clientID, topic string) error

UnsubscribeFromTopic unsubscribes a client from a topic

func (*Manager) UpdateClientActivity

func (m *Manager) UpdateClientActivity(ctx context.Context, clientID string) error

UpdateClientActivity updates client last seen timestamp

type MessageOption

type MessageOption func(*types.Message)

MessageOption is a function that modifies a message

func WithMaxRetries

func WithMaxRetries(maxRetries int) MessageOption

WithMaxRetries sets the maximum retry count

func WithMetadata

func WithMetadata(key, value string) MessageOption

WithMetadata adds metadata to the message

func WithPriority

func WithPriority(priority int) MessageOption

WithPriority sets the message priority

func WithTTL

func WithTTL(ttl time.Duration) MessageOption

WithTTL sets the message TTL

Jump to

Keyboard shortcuts

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