Documentation
¶
Index ¶
- Variables
- type EventHandler
- type PublicOffsetsRange
- type PublicReadMessages
- type PublicStartPartitionSessionConfirm
- type PublicStartPartitionSessionEvent
- type PublicStopPartitionSessionConfirm
- type PublicStopPartitionSessionEvent
- type StreamListenerConfig
- type TopicClient
- type TopicListenerReconnector
Constants ¶
This section is empty.
Variables ¶
var ErrUserCloseTopic = errors.New("ydb: user closed topic listener")
Functions ¶
This section is empty.
Types ¶
type EventHandler ¶
type EventHandler interface {
// OnStartPartitionSessionRequest called when server send start partition session request method.
// You can use it to store read progress on your own side.
// You must call event.Confirm(...) for start to receive messages from the partition.
// You can set topiclistener.StartPartitionSessionConfirm for change default settings.
//
// Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
OnStartPartitionSessionRequest(ctx context.Context, event *PublicStartPartitionSessionEvent) error
// OnReadMessages called with batch of messages. Max count of messages limited by internal buffer size
//
// Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
OnReadMessages(ctx context.Context, event *PublicReadMessages) error
// OnStopPartitionSessionRequest called when the server send stop partition message.
// It means that no more OnReadMessages calls for the partition session.
// You must call event.Confirm() for allow the server to stop the partition session (if event.Graceful=true).
// Confirm is optional for event.Graceful=false
// The method can be called twice: with event.Graceful=true, then event.Graceful=false.
// It is guaranteed about the method will be called least once.
//
// Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
OnStopPartitionSessionRequest(ctx context.Context, event *PublicStopPartitionSessionEvent) error
}
type PublicOffsetsRange ¶
PublicOffsetsRange
Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
type PublicReadMessages ¶
type PublicReadMessages struct {
PartitionSession topicreadercommon.PublicPartitionSession
Batch *topicreader.Batch
}
PublicReadMessages
Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
type PublicStartPartitionSessionConfirm ¶
type PublicStartPartitionSessionConfirm struct {
CommitOffset *int64 ``
// contains filtered or unexported fields
}
PublicStartPartitionSessionConfirm
Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
func (PublicStartPartitionSessionConfirm) WithCommitOffset ¶
func (c PublicStartPartitionSessionConfirm) WithCommitOffset(val int64) PublicStartPartitionSessionConfirm
WithCommitOffset
Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
func (PublicStartPartitionSessionConfirm) WithReadOffet ¶
func (c PublicStartPartitionSessionConfirm) WithReadOffet(val int64) PublicStartPartitionSessionConfirm
WithReadOffet
Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
type PublicStartPartitionSessionEvent ¶
type PublicStartPartitionSessionEvent struct {
PartitionSession topicreadercommon.PublicPartitionSession
CommittedOffset int64
PartitionOffsets PublicOffsetsRange
// contains filtered or unexported fields
}
PublicStartPartitionSessionEvent
Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
func (*PublicStartPartitionSessionEvent) Confirm ¶
func (e *PublicStartPartitionSessionEvent) Confirm()
Confirm
Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
func (*PublicStartPartitionSessionEvent) ConfirmWithParams ¶
func (e *PublicStartPartitionSessionEvent) ConfirmWithParams(p PublicStartPartitionSessionConfirm)
type PublicStopPartitionSessionConfirm ¶
type PublicStopPartitionSessionConfirm struct{}
PublicStopPartitionSessionConfirm
Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
type PublicStopPartitionSessionEvent ¶
type PublicStopPartitionSessionEvent struct {
PartitionSession topicreadercommon.PublicPartitionSession
// Graceful mean about server is waiting for client finish work with the partition and confirm stop the work
// if the field is false it mean about server stop lease the partition to the client and can assignee the partition
// to other read session (on this or other connection).
Graceful bool
CommittedOffset int64
// contains filtered or unexported fields
}
PublicStopPartitionSessionEvent
Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
func (*PublicStopPartitionSessionEvent) Confirm ¶
func (e *PublicStopPartitionSessionEvent) Confirm()
Confirm
Experimental: https://github.com/ydb-platform/ydb-go-sdk/blob/master/VERSIONING.md#experimental
type StreamListenerConfig ¶
type StreamListenerConfig struct {
BufferSize int
Decoders topicreadercommon.DecoderMap
Selectors []*topicreadercommon.PublicReadSelector
Consumer string
ConnectWithoutConsumer bool
// contains filtered or unexported fields
}
func NewStreamListenerConfig ¶
func NewStreamListenerConfig() StreamListenerConfig
func (*StreamListenerConfig) Validate ¶
func (cfg *StreamListenerConfig) Validate() error
type TopicClient ¶
type TopicClient interface {
StreamRead(connectionCtx context.Context) (rawtopicreader.StreamReader, error)
}
type TopicListenerReconnector ¶
type TopicListenerReconnector struct {
// contains filtered or unexported fields
}
func NewTopicListenerReconnector ¶
func NewTopicListenerReconnector( client TopicClient, streamConfig *StreamListenerConfig, handler EventHandler, ) (*TopicListenerReconnector, error)
func (*TopicListenerReconnector) Close ¶
func (lr *TopicListenerReconnector) Close(ctx context.Context, reason error) error