milvus/pkg/streaming/util/message/message_handler.go
chyezh d2bc4a53be
enhance: implement rmq and pulsar as wal (#34046)
issue: #33285

- use reader but not consumer for pulsar
- advanced test framework
- move some streaming related package into pkg

---------

Signed-off-by: chyezh <chyezh@outlook.com>
2024-06-27 15:11:05 +08:00

35 lines
905 B
Go

package message
// Handler is used to handle message read from log.
type Handler interface {
// Handle is the callback for handling message.
Handle(msg ImmutableMessage)
// Close is called after all messages are handled or handling is interrupted.
Close()
}
var _ Handler = ChanMessageHandler(nil)
// ChanMessageHandler is a handler just forward the message into a channel.
type ChanMessageHandler chan ImmutableMessage
// Handle is the callback for handling message.
func (cmh ChanMessageHandler) Handle(msg ImmutableMessage) {
cmh <- msg
}
// Close is called after all messages are handled or handling is interrupted.
func (cmh ChanMessageHandler) Close() {
close(cmh)
}
// NopCloseHandler is a handler that do nothing when close.
type NopCloseHandler struct {
Handler
}
// Close is called after all messages are handled or handling is interrupted.
func (nch NopCloseHandler) Close() {
}