36 lines
805 B
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
|
|
}
|