milvus/internal/msgstream/client/pulsar/pulsar_consumer.go
yukun 432b53149b Refactor msgstream
Signed-off-by: yukun <kun.yu@zilliz.com>
2021-03-26 20:10:11 +08:00

38 lines
847 B
Go

package pulsar
import (
"github.com/apache/pulsar-client-go/pulsar"
"github.com/zilliztech/milvus-distributed/internal/msgstream/client"
"github.com/zilliztech/milvus-distributed/internal/util/typeutil"
)
type pulsarConsumer struct {
c pulsar.Consumer
msgChannel chan client.ConsumerMessage
}
func (pc *pulsarConsumer) Subscription() string {
return pc.c.Subscription()
}
func (pc *pulsarConsumer) Chan() <-chan client.ConsumerMessage {
return pc.msgChannel
}
func (pc *pulsarConsumer) Seek(id client.MessageID) error {
messageID, err := typeutil.StringToPulsarMsgID(string(id.Serialize()))
if err != nil {
return err
}
return pc.c.Seek(messageID)
}
func (pc *pulsarConsumer) Ack(message client.ConsumerMessage) {
pm := message.(*pulsarMessage)
pc.c.Ack(pm.msg)
}
func (pc *pulsarConsumer) Close() {
pc.c.Close()
}