topfans/backend/pkg/mq/config.go

36 lines
805 B
Go

package mq
import (
asynqPackage "github.com/topfans/backend/pkg/mq/asynq"
)
// Driver 标识底层 broker 类型
type Driver string
const (
DriverRedis Driver = "redis" // 默认: Asynq (任务) + Redis Streams (事件)
DriverRabbitMQ Driver = "rabbitmq" // 预留,本期不实现
)
// Config MQ 整体配置
type Config struct {
// MQDriver 选择 broker 实现 (默认 redis)
MQDriver Driver
// Asynq 配置
Asynq asynqPackage.Config
// Redis Streams 配置
Streams StreamsConfig
}
// StreamsConfig Redis Streams 配置
type StreamsConfig struct {
RedisAddr string
RedisDB int
Password string
ConsumerGroup string // 默认 "topfans-service"
MaxLen int64 // Stream 最大长度,默认 100000
ReadBlockMS int // XReadGroup Block 毫秒,默认 1000
}