queue/delay/define.go
2022-07-08 16:53:42 +08:00

64 lines
1.7 KiB
Go

// Package delay ...
//
// Description : delay ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2022-07-06 17:55
package delay
// ProduceData 生产的数据结构
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:56 2022/7/6
type ProduceData struct {
MsgID string `json:"msg_id"` // 消息ID
Timestamp int64 `json:"timestamp"` // 消息生成时间: ms
Host string `json:"host"` // 生产消息的机器IP
Data map[string]interface{} `json:"data"` // 传入的业务数据
}
// ZRangeData zRange读取的数据
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:24 2022/7/8
type ZRangeData struct {
Score int64 // 数据分值
Data *ProduceData // 实际业务数据
}
// Queue 队列数据
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 17:56 2022/7/6
type Queue struct {
Name string `json:"name"` // 队列名称
DelayTime int64 `json:"delay_time"` // 延迟执行时间
Data map[string]interface{} `json:"data"` // 入队数据
err error // 数据入队的异常信息
}
// Err 获取入队异常
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 18:37 2022/7/6
func (q *Queue) Err() error {
return q.err
}
// ConsumerConfig 消费者配置
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:12 2022/7/8
type ConsumerConfig struct {
QueueName string // 队列名称
SonQueueCnt int // 二级队列数量
SonQueName string // 二级队列名称
HashKey string // hash消息写到哪个二级队列的key, 若不配置或者key不存在, 使用 ProduceData.MsgID
}