30 lines
702 B
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
|
|
}
|