queuemanager

package
v0.1.0-alpha.2 Latest Latest
Warning

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

Go to latest
Published: May 31, 2023 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const MAX_QUEUE_LENGTH = 50

Variables

View Source
var MaxQueueLenError = fmt.Errorf("max queue length exceeded")

Functions

This section is empty.

Types

type DefaultModuleRunQueueManager

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

func NewDefaultModuleRunQueueManager

func NewDefaultModuleRunQueueManager(repo repository.Repository) *DefaultModuleRunQueueManager

func (*DefaultModuleRunQueueManager) Enqueue

func (queue *DefaultModuleRunQueueManager) Enqueue(module *models.Module, moduleRun *models.ModuleRun, lockOpts *LockOpts) error

func (*DefaultModuleRunQueueManager) FlushQueue

func (queue *DefaultModuleRunQueueManager) FlushQueue(module *models.Module, lockOpts *LockOpts) error

func (*DefaultModuleRunQueueManager) Len

func (queue *DefaultModuleRunQueueManager) Len(module *models.Module) (int, error)

func (*DefaultModuleRunQueueManager) Peek

NOTE: Peek has the side effect of placing a lock on the module if the module run is currently in a queued state. Module locks are fully managed by the queue manager.

func (*DefaultModuleRunQueueManager) Remove

func (queue *DefaultModuleRunQueueManager) Remove(module *models.Module, moduleRun *models.ModuleRun) error

Remove should remove the lock on the module if the module run corresponds to an apply or destroy.

type LockOpts

type LockOpts struct {
	LockID   string
	LockKind models.ModuleLockKind
}

type ModuleRunQueueManager

type ModuleRunQueueManager interface {
	FlushQueue(module *models.Module, lockOpts *LockOpts) error
	Enqueue(module *models.Module, moduleRun *models.ModuleRun, lockOpts *LockOpts) error
	Len(module *models.Module) (int, error)
	Peek(module *models.Module) (*models.ModuleRun, error)
	Remove(module *models.Module, moduleRun *models.ModuleRun) error
}

Jump to

Keyboard shortcuts

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