2023-08-11 18:00:35 +08:00

51 lines
1.3 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @Company: 云南奇讯科技有限公司
* @Author: yxf
* @Description:
* @Date: 2023/7/3 8:56
*/
package service
import (
"github.com/tiger1103/gfast/v3/internal/app/mqueue/consts"
"github.com/tiger1103/gfast/v3/internal/app/mqueue/model"
)
type IConsumer interface {
// CloseMqConsumer 关闭消费者
CloseMqConsumer()
}
// IProducer 消息队列生产者接口
type IProducer interface {
// Publish 发布单条消息并等待结果
Publish(topic string, body []byte) error
// PublishAsync 发布单条异步消息,不用等待服务器返回结果
PublishAsync(topic string, body []byte) error
// DelayPublish 延时发布消息并等待结果delay单位延迟等级1-18级对应: 1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h
DelayPublish(topic string, body []byte, delay consts.MsgDelayLevel) error
// Close 关闭生产者
Close()
}
type IMQueue interface {
SendMsg(m *model.MQSendMsg) error
Subscribe(topic, channel string, handler model.MQConsumerHandlerCallback) error
Close()
Unsubscribe(topic, channel string) error
}
var localMQueue IMQueue
func MQueue() IMQueue {
if localMQueue == nil {
panic("implement not found for interface IMQueue, forgot register?")
}
return localMQueue
}
func RegisterMQueue(i IMQueue) {
localMQueue = i
}