Documentation ¶
Index ¶
Constants ¶
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