Documentation ¶
Index ¶
- type ExecutionScheduler
- func (e *ExecutionScheduler) GetExecutionPlan() []libWorker.ExecutionStep
- func (e *ExecutionScheduler) GetExecutorConfigs() []libWorker.ExecutorConfig
- func (e *ExecutionScheduler) GetExecutors() []libWorker.Executor
- func (e *ExecutionScheduler) GetInitProgressBar() *pb.ProgressBar
- func (e *ExecutionScheduler) GetRunner() libWorker.Runner
- func (e *ExecutionScheduler) GetState() *libWorker.ExecutionState
- func (e *ExecutionScheduler) Init(ctx context.Context, samplesOut chan<- workerMetrics.SampleContainer, ...) error
- func (e *ExecutionScheduler) Run(globalCtx, runCtx context.Context, ...) error
- func (e *ExecutionScheduler) SetPaused(pause bool) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ExecutionScheduler ¶
type ExecutionScheduler struct {
// contains filtered or unexported fields
}
ExecutionScheduler is the local implementation of libWorker.ExecutionScheduler
func NewExecutionScheduler ¶
func NewExecutionScheduler(trs *libWorker.TestRunState) (*ExecutionScheduler, error)
NewExecutionScheduler creates and returns a new local libWorker.ExecutionScheduler instance, without initializing it beyond the bare minimum. Specifically, it creates the needed executor instances and a lot of state placeholders, but it doesn't initialize the executors and it doesn't initialize or run VUs.
func (*ExecutionScheduler) GetExecutionPlan ¶
func (e *ExecutionScheduler) GetExecutionPlan() []libWorker.ExecutionStep
GetExecutionPlan is a helper method so users of the local execution scheduler don't have to calculate the execution plan again.
func (*ExecutionScheduler) GetExecutorConfigs ¶
func (e *ExecutionScheduler) GetExecutorConfigs() []libWorker.ExecutorConfig
GetExecutorConfigs returns the slice of all executor configs, sorted by their (startTime, name) in an ascending order.
func (*ExecutionScheduler) GetExecutors ¶
func (e *ExecutionScheduler) GetExecutors() []libWorker.Executor
GetExecutors returns the slice of configured executor instances which have work, sorted by their (startTime, name) in an ascending order.
func (*ExecutionScheduler) GetInitProgressBar ¶
func (e *ExecutionScheduler) GetInitProgressBar() *pb.ProgressBar
GetInitProgressBar returns the progress bar associated with the Init function. After the Init is done, it is "hijacked" to display real-time execution statistics as a text bar.
func (*ExecutionScheduler) GetRunner ¶
func (e *ExecutionScheduler) GetRunner() libWorker.Runner
GetRunner returns the wrapped libWorker.Runner instance.
func (*ExecutionScheduler) GetState ¶
func (e *ExecutionScheduler) GetState() *libWorker.ExecutionState
GetState returns a pointer to the execution state struct for the local execution scheduler. It's guaranteed to be initialized and present, though see the documentation in lib/execution.go for caveats about its usage. The most important one is that none of the methods beyond the pause-related ones should be used for synchronization.
func (*ExecutionScheduler) Init ¶
func (e *ExecutionScheduler) Init(ctx context.Context, samplesOut chan<- workerMetrics.SampleContainer, workerInfo *libWorker.WorkerInfo) error
Init concurrently initializes all of the planned VUs and then sequentially initializes all of the configured executors.
func (*ExecutionScheduler) Run ¶
func (e *ExecutionScheduler) Run(globalCtx, runCtx context.Context, engineOut chan<- workerMetrics.SampleContainer, workerInfo *libWorker.WorkerInfo) error
Run the ExecutionScheduler, funneling all generated metric samples through the supplied out channel.
func (*ExecutionScheduler) SetPaused ¶
func (e *ExecutionScheduler) SetPaused(pause bool) error
SetPaused pauses a test, if called with true. And if called with false, tries to start/resume it. See the libWorker.ExecutionScheduler interface documentation of the methods for the various caveats about its usage.