contract

package
v0.3.4 Latest Latest
Warning

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

Go to latest
Published: Jul 23, 2025 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrConnectionFailed      = NewMQError(ErrCodeConnectionFailed, "connection failed", nil)
	ErrMessageSendFailed     = NewMQError(ErrCodeMessageSendFailed, "message send failed", nil)
	ErrMessageReceiveFailed  = NewMQError(ErrCodeMessageReceiveFailed, "message receive failed", nil)
	ErrQueueNotFound         = NewMQError(ErrCodeQueueNotFound, "queue not found", nil)
	ErrSerializationFailed   = NewMQError(ErrCodeSerializationFailed, "serialization failed", nil)
	ErrDeserializationFailed = NewMQError(ErrCodeDeserializationFailed, "deserialization failed", nil)
	ErrTimeout               = NewMQError(ErrCodeTimeout, "operation timeout", nil)
	ErrInvalidConfig         = NewMQError(ErrCodeInvalidConfig, "invalid configuration", nil)
	ErrClientClosed          = NewMQError(ErrCodeClientClosed, "client is closed", nil)
)

预定义错误

Functions

This section is empty.

Types

type Consumer

type Consumer interface {
	// Subscribe 订阅消息
	Subscribe(ctx context.Context, topic string, handler message.Handler) error
	// Unsubscribe 取消订阅
	Unsubscribe(topic string) error
	// Close 关闭消费者
	Close() error
}

Consumer 消费者接口

type DelayQueue added in v0.1.0

type DelayQueue interface {
	// Push 推送延时消息
	Push(ctx context.Context, msg *message.Message, delay time.Duration) error
	// Pop 弹出到期消息
	Pop(ctx context.Context) (*message.Message, error)
	// Remove 移除消息
	Remove(ctx context.Context, msgID string) error
	// Size 获取队列大小
	Size(ctx context.Context) (int64, error)
}

DelayQueue 延时队列接口

type ErrorCode added in v0.1.0

type ErrorCode int

ErrorCode 错误代码

const (
	ErrCodeUnknown ErrorCode = iota
	ErrCodeConnectionFailed
	ErrCodeMessageSendFailed
	ErrCodeMessageReceiveFailed
	ErrCodeQueueNotFound
	ErrCodeSerializationFailed
	ErrCodeDeserializationFailed
	ErrCodeTimeout
	ErrCodeInvalidConfig
	ErrCodeClientClosed
)

type MQ added in v0.1.0

type MQ interface {
	Producer() Producer
	Consumer() Consumer
	DelayQueue() DelayQueue
	HealthCheck() error
	Close() error
}

MQ 消息队列统一接口

type MQError added in v0.1.0

type MQError struct {
	Code    ErrorCode `json:"code"`
	Message string    `json:"message"`
	Cause   error     `json:"cause,omitempty"`
}

MQError 消息队列错误

func NewMQError added in v0.1.0

func NewMQError(code ErrorCode, message string, cause error) *MQError

NewMQError 创建MQ错误

func (*MQError) Error added in v0.1.0

func (e *MQError) Error() string

Error 实现error接口

func (*MQError) Unwrap added in v0.1.0

func (e *MQError) Unwrap() error

Unwrap 支持errors.Unwrap

type Middleware added in v0.1.0

type Middleware func(next message.Handler) message.Handler

Middleware 中间件函数类型

func LoggingMiddleware added in v0.1.0

func LoggingMiddleware(logger *zap.Logger) Middleware

LoggingMiddleware 日志中间件 - 简化版本

func RetryMiddleware added in v0.1.0

func RetryMiddleware(maxRetries int, backoff time.Duration) Middleware

RetryMiddleware 重试中间件

func TimeoutMiddleware added in v0.1.0

func TimeoutMiddleware(timeout time.Duration) Middleware

TimeoutMiddleware 超时中间件

type MiddlewareChain added in v0.1.0

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

MiddlewareChain 中间件链

func NewMiddlewareChain added in v0.1.0

func NewMiddlewareChain(middlewares ...Middleware) *MiddlewareChain

NewMiddlewareChain 创建中间件链

func (*MiddlewareChain) Apply added in v0.1.0

func (mc *MiddlewareChain) Apply(handler message.Handler) message.Handler

Apply 应用中间件链

type Producer

type Producer interface {
	// Send 发送消息
	Send(ctx context.Context, msg *message.Message) error
	// SendDelay 发送延时消息
	SendDelay(ctx context.Context, msg *message.Message, delay time.Duration) error
	// SendBatch 批量发送消息
	SendBatch(ctx context.Context, msgs []*message.Message) error
	// Close 关闭生产者
	Close() error
}

Producer 生产者接口

Jump to

Keyboard shortcuts

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