feat: refactor the mq’s RegisterConsumer method to make it easier to inject (#581)
This commit is contained in:
@@ -24,7 +24,20 @@ type Producer interface {
|
||||
BatchSend(ctx context.Context, bodyArr [][]byte, opts ...SendOpt) error
|
||||
}
|
||||
|
||||
type Consumer interface{}
|
||||
var defaultSVC ConsumerService
|
||||
|
||||
func SetDefaultSVC(svc ConsumerService) {
|
||||
defaultSVC = svc
|
||||
}
|
||||
|
||||
func GetDefaultSVC() ConsumerService {
|
||||
return defaultSVC
|
||||
}
|
||||
|
||||
type ConsumerService interface {
|
||||
RegisterConsumer(nameServer, topic, group string, consumerHandler ConsumerHandler, opts ...ConsumerOpt) error
|
||||
}
|
||||
|
||||
type ConsumerHandler interface {
|
||||
HandleMessage(ctx context.Context, msg *Message) error
|
||||
}
|
||||
|
||||
@@ -29,13 +29,23 @@ import (
|
||||
|
||||
type (
|
||||
Producer = eventbus.Producer
|
||||
Consumer = eventbus.Consumer
|
||||
ConsumerService = eventbus.ConsumerService
|
||||
ConsumerHandler = eventbus.ConsumerHandler
|
||||
ConsumerOpt = eventbus.ConsumerOpt
|
||||
Message = eventbus.Message
|
||||
)
|
||||
|
||||
func RegisterConsumer(nameServer, topic, group string, consumerHandler eventbus.ConsumerHandler, opts ...eventbus.ConsumerOpt) error {
|
||||
type consumerServiceImpl struct{}
|
||||
|
||||
func NewConsumerService() ConsumerService {
|
||||
return &consumerServiceImpl{}
|
||||
}
|
||||
|
||||
func DefaultSVC() ConsumerService {
|
||||
return eventbus.GetDefaultSVC()
|
||||
}
|
||||
|
||||
func (consumerServiceImpl) RegisterConsumer(nameServer, topic, group string, consumerHandler eventbus.ConsumerHandler, opts ...eventbus.ConsumerOpt) error {
|
||||
tp := os.Getenv(consts.MQTypeKey)
|
||||
switch tp {
|
||||
case "nsq":
|
||||
|
||||
Reference in New Issue
Block a user