plugin

package
v1.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 29, 2025 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Channel

type Channel interface {
	Close() error
	Push(record element.Record) error
	Pull() (element.Record, error)
	Size() int
	IsClosed() bool
}

Channel 通道接口,连接Reader和Writer - 纯接口定义

type ChannelFactory

type ChannelFactory interface {
	CreateChannel(maxSize int) Channel
}

ChannelFactory 通道工厂接口

type PluginRegistry

type PluginRegistry interface {
	RegisterReaderJob(name string, factory ReaderJobFactory) error
	RegisterReaderTask(name string, factory ReaderTaskFactory) error
	RegisterWriterJob(name string, factory WriterJobFactory) error
	RegisterWriterTask(name string, factory WriterTaskFactory) error

	GetReaderJob(name string) (ReaderJobFactory, error)
	GetReaderTask(name string) (ReaderTaskFactory, error)
	GetWriterJob(name string) (WriterJobFactory, error)
	GetWriterTask(name string) (WriterTaskFactory, error)

	ListReaderPlugins() []string
	ListWriterPlugins() []string
}

PluginRegistry 插件注册表接口 - 负责插件的注册和获取

type PluginType

type PluginType int

PluginType 插件类型

const (
	ReaderPlugin PluginType = iota
	WriterPlugin
)

type Reader

type Reader interface {
	Init(config config.Configuration) error
	Destroy() error
}

Reader 基础读取插件接口

type ReaderJob

type ReaderJob interface {
	Reader
	Split(adviceNumber int) ([]config.Configuration, error)
	Post() error
}

ReaderJob 读取作业接口 - 负责作业级别的操作

type ReaderJobFactory

type ReaderJobFactory interface {
	CreateReaderJob() ReaderJob
}

Plugin factories - 工厂模式接口定义

type ReaderTask

type ReaderTask interface {
	Reader
	StartRead(recordSender RecordSender) error
	Post() error
}

ReaderTask 读取任务接口 - 负责任务级别的数据读取

type ReaderTaskFactory

type ReaderTaskFactory interface {
	CreateReaderTask() ReaderTask
}

type ReaderTaskWithContext

type ReaderTaskWithContext interface {
	ReaderTask
	StartReadWithContext(recordSender RecordSender, ctx context.Context) error
}

ReaderTaskWithContext 支持Context取消的读取任务接口

type RecordReceiver

type RecordReceiver interface {
	GetFromReader() (element.Record, error)
	Shutdown() error
}

RecordReceiver 记录接收接口 - 纯接口定义

type RecordSender

type RecordSender interface {
	SendRecord(record element.Record) error
	Flush() error
	Terminate() error
	Shutdown() error
}

RecordSender 记录发送接口 - 纯接口定义

type SenderReceiverFactory

type SenderReceiverFactory interface {
	CreateRecordSender(channel Channel) RecordSender
	CreateRecordReceiver(channel Channel) RecordReceiver
}

SenderReceiverFactory 发送器接收器工厂接口

type Writer

type Writer interface {
	Init(config config.Configuration) error
	Destroy() error
}

Writer 基础写入插件接口

type WriterJob

type WriterJob interface {
	Writer
	Split(mandatoryNumber int) ([]config.Configuration, error)
	Post() error
	Prepare() error
}

WriterJob 写入作业接口 - 负责作业级别的操作

type WriterJobFactory

type WriterJobFactory interface {
	CreateWriterJob() WriterJob
}

type WriterTask

type WriterTask interface {
	Writer
	StartWrite(recordReceiver RecordReceiver) error
	Post() error
	Prepare() error
}

WriterTask 写入任务接口 - 负责任务级别的数据写入

type WriterTaskFactory

type WriterTaskFactory interface {
	CreateWriterTask() WriterTask
}

type WriterTaskWithContext

type WriterTaskWithContext interface {
	WriterTask
	StartWriteWithContext(recordReceiver RecordReceiver, ctx context.Context) error
}

WriterTaskWithContext 支持Context取消的写入任务接口

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL