scheduler

package
v4.72.5 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2024 License: MPL-2.0 Imports: 33 Imported by: 51

Documentation

Index

Constants

View Source
const (
	DefaultBatchMaxRows = 50
	DefaultBatchTimeout = 5 * time.Second
)
View Source
const (
	DefaultSingleResourceMaxConcurrency    = 5
	DefaultSingleNestedTableMaxConcurrency = 5
	DefaultConcurrency                     = 50000
	DefaultMaxDepth                        = 4
)

Variables

View Source
var AllStrategyNames = [...]string{
	StrategyDFS:          "dfs",
	StrategyRoundRobin:   "round-robin",
	StrategyShuffle:      "shuffle",
	StrategyShuffleQueue: "shuffle-queue",
}
View Source
var ErrNoTables = errors.New("no tables specified for syncing, review `tables` and `skip_tables` in your config and specify at least one table to sync")

Functions

This section is empty.

Types

type BatchOption added in v4.46.0

type BatchOption func(settings *BatchSettings)

func WithBatchMaxRows added in v4.46.0

func WithBatchMaxRows(rows int) BatchOption

func WithBatchTimeout added in v4.46.0

func WithBatchTimeout(timeout time.Duration) BatchOption

type BatchSettings added in v4.46.0

type BatchSettings struct {
	MaxRows int
	Timeout time.Duration
}

type Client

type Client interface {
	ID() string
}

type Option

type Option func(*Scheduler)

func WithBatchOptions added in v4.46.0

func WithBatchOptions(options ...BatchOption) Option

func WithConcurrency

func WithConcurrency(concurrency int) Option

func WithInvocationID added in v4.49.0

func WithInvocationID(invocationID string) Option

func WithLogger

func WithLogger(logger zerolog.Logger) Option

func WithMaxDepth

func WithMaxDepth(maxDepth uint64) Option

func WithSingleNestedTableMaxConcurrency added in v4.21.0

func WithSingleNestedTableMaxConcurrency(concurrency int64) Option

func WithSingleResourceMaxConcurrency added in v4.23.0

func WithSingleResourceMaxConcurrency(concurrency int64) Option

func WithStrategy

func WithStrategy(strategy Strategy) Option

func WithoutBatching added in v4.48.0

func WithoutBatching() Option

type Scheduler

type Scheduler struct {
	// contains filtered or unexported fields
}

func NewScheduler

func NewScheduler(opts ...Option) *Scheduler

func (*Scheduler) Sync

func (s *Scheduler) Sync(ctx context.Context, client schema.ClientMeta, tables schema.Tables, res chan<- message.SyncMessage, opts ...SyncOption) error

func (*Scheduler) SyncAll

func (s *Scheduler) SyncAll(ctx context.Context, client schema.ClientMeta, tables schema.Tables) (message.SyncMessages, error)

SyncAll is mostly used for testing as it will sync all tables and can run out of memory in the real world. Should use Sync for production.

type Strategies

type Strategies []Strategy

func (Strategies) String

func (s Strategies) String() string

type Strategy

type Strategy int
const (
	StrategyDFS Strategy = iota
	StrategyRoundRobin
	StrategyShuffle
	StrategyShuffleQueue
)

func StrategyForName

func StrategyForName(s string) (Strategy, error)

func (Strategy) JSONSchema added in v4.12.0

func (Strategy) JSONSchema() *jsonschema.Schema

func (*Strategy) MarshalJSON

func (s *Strategy) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (*Strategy) String

func (s *Strategy) String() string

func (*Strategy) UnmarshalJSON

func (s *Strategy) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler.

func (*Strategy) Validate

func (s *Strategy) Validate() error

type SyncOption

type SyncOption func(*syncClient)

func WithShard added in v4.63.0

func WithShard(num int32, total int32) SyncOption

func WithSyncDeterministicCQID

func WithSyncDeterministicCQID(deterministicCQID bool) SyncOption

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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