operations

package
v0.12.1 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2020 License: Apache-2.0, BSD-3-Clause, MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ZeroTime = "0001-01-01 00:00:00+00"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Maintainer

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

Maintainer ensures that operations old enough are deleted and that no orphan operations are left in the DB due to crashes/restarts of SM

func NewMaintainer

func NewMaintainer(smCtx context.Context, repository storage.TransactionalRepository, lockerCreatorFunc storage.LockerCreatorFunc, options *Settings, wg *sync.WaitGroup) *Maintainer

NewMaintainer constructs a Maintainer

func (*Maintainer) Run

func (om *Maintainer) Run()

Run starts the two recurring jobs responsible for cleaning up operations which are too old and deleting orphan operations

type PoolSettings

type PoolSettings struct {
	Resource string `mapstructure:"resource" description:"name of the resource for which a worker pool is created"`
	Size     int    `mapstructure:"size" description:"size of the worker pool"`
}

PoolSettings defines the settings for a worker pool

func (*PoolSettings) Validate

func (ps *PoolSettings) Validate() error

Validate validates the Pool settings

type Scheduler

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

Scheduler is responsible for storing Operation entities in the DB and also for spawning goroutines to execute the respective DB transaction asynchronously

func NewScheduler

func NewScheduler(smCtx context.Context, repository storage.TransactionalRepository, settings *Settings, poolSize int, wg *sync.WaitGroup) *Scheduler

NewScheduler constructs a Scheduler

func (*Scheduler) ScheduleAsyncStorageAction added in v0.10.0

func (s *Scheduler) ScheduleAsyncStorageAction(ctx context.Context, operation *types.Operation, action storageAction) error

ScheduleAsyncStorageAction stores the job's Operation entity in DB asynchronously executes the CREATE/UPDATE/DELETE DB transaction in a goroutine

func (*Scheduler) ScheduleSyncStorageAction added in v0.10.0

func (s *Scheduler) ScheduleSyncStorageAction(ctx context.Context, operation *types.Operation, action storageAction) (types.Object, error)

ScheduleSyncStorageAction stores the job's Operation entity in DB and synchronously executes the CREATE/UPDATE/DELETE DB transaction

type Settings

type Settings struct {
	ActionTimeout                  time.Duration `mapstructure:"action_timeout" description:"timeout for async operations"`
	ReconciliationOperationTimeout time.Duration `` /* 132-byte string literal not displayed */

	CleanupInterval time.Duration `mapstructure:"cleanup_interval" description:"cleanup interval of old operations"`
	Lifespan        time.Duration `` /* 133-byte string literal not displayed */

	ReschedulingInterval time.Duration `mapstructure:"rescheduling_interval" description:"the interval between auto rescheduling of operation actions"`
	PollingInterval      time.Duration `mapstructure:"polling_interval" description:"the interval between polls for async requests"`

	DefaultPoolSize int            `mapstructure:"default_pool_size" description:"default worker pool size"`
	Pools           []PoolSettings `mapstructure:"pools" description:"defines the different available worker pools"`
}

Settings type to be loaded from the environment

func DefaultSettings

func DefaultSettings() *Settings

DefaultSettings returns default values for API settings

func (*Settings) Validate

func (s *Settings) Validate() error

Validate validates the Operations settings

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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