contracts/queue.go

30 lines
702 B
Go

package contracts
type Queue interface {
// 消息推送
// @param topic 订阅的主题
// @param msg 传递的消息
Publish(topic string, msg any) error
// 消息订阅
// @description 传入订阅的主题,即可完成订阅
// @param topic 订阅的主题
// @return channel 通道用来接收数据
Subscribe(topic string) (sub <-chan any, err error)
// 取消订阅
// @param topic 订阅的主题
// @param sub 消息订阅的通道
Unsubscribe(topic string, sub <-chan any) error
// 关闭消息队列
Close()
// 设置消息容量
// @description 控制消息队列的大小
SetConditions(capacity int)
// 获取主题消息内容
GetPayload(sub <-chan any) any
}