worker

package
v0.0.0-...-8acab51 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type OptimizedPool

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

OptimizedPool is a high-performance worker pool with auto-scaling.

func NewOptimizedPool

func NewOptimizedPool(ctx context.Context, config OptimizedPoolConfig) *OptimizedPool

NewOptimizedPool creates a new optimized worker pool.

func (*OptimizedPool) Results

func (p *OptimizedPool) Results() <-chan *TaskResult

Results returns the results channel.

func (*OptimizedPool) Shutdown

func (p *OptimizedPool) Shutdown()

Shutdown gracefully shuts down the pool.

func (*OptimizedPool) ShutdownWithTimeout

func (p *OptimizedPool) ShutdownWithTimeout(timeout time.Duration) error

ShutdownWithTimeout shuts down with a timeout.

func (*OptimizedPool) Stats

func (p *OptimizedPool) Stats() OptimizedPoolStats

Stats returns current pool statistics.

func (*OptimizedPool) Submit

func (p *OptimizedPool) Submit(task *Task) bool

Submit submits a task to the pool.

func (*OptimizedPool) SubmitFunc

func (p *OptimizedPool) SubmitFunc(fn func(context.Context) error) bool

SubmitFunc is a convenience method to submit a function directly.

func (*OptimizedPool) SubmitFuncWithTimeout

func (p *OptimizedPool) SubmitFuncWithTimeout(fn func(context.Context) error, timeout time.Duration) bool

SubmitFuncWithTimeout submits a function with a timeout.

type OptimizedPoolConfig

type OptimizedPoolConfig struct {
	MinWorkers         int
	MaxWorkers         int
	QueueSize          int
	IdleTimeout        time.Duration
	ScaleUpThreshold   float64 // Queue utilization threshold to scale up
	ScaleDownThreshold float64 // Queue utilization threshold to scale down
	MetricsEnabled     bool
}

OptimizedPoolConfig holds configuration for the optimized pool.

func DefaultOptimizedPoolConfig

func DefaultOptimizedPoolConfig() OptimizedPoolConfig

DefaultOptimizedPoolConfig returns default configuration.

type OptimizedPoolStats

type OptimizedPoolStats struct {
	ActiveWorkers    int64         `json:"active_workers"`
	TotalWorkers     int64         `json:"total_workers"`
	TasksSubmitted   int64         `json:"tasks_submitted"`
	TasksCompleted   int64         `json:"tasks_completed"`
	TasksFailed      int64         `json:"tasks_failed"`
	TasksPending     int           `json:"tasks_pending"`
	QueueCapacity    int           `json:"queue_capacity"`
	QueueUtilization float64       `json:"queue_utilization"`
	AvgWaitTime      time.Duration `json:"avg_wait_time"`
	AvgExecTime      time.Duration `json:"avg_exec_time"`
}

OptimizedPoolStats holds pool statistics.

type Pool

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

func NewPool

func NewPool(ctx context.Context, size int) *Pool

func (*Pool) Running

func (p *Pool) Running() int

func (*Pool) Size

func (p *Pool) Size() int

func (*Pool) Stats

func (p *Pool) Stats() Stats

func (*Pool) Submit

func (p *Pool) Submit(fn func(context.Context) error)

func (*Pool) Total

func (p *Pool) Total() int64

func (*Pool) Wait

func (p *Pool) Wait() error

type Stats

type Stats struct {
	PoolSize int   `json:"pool_size"`
	Running  int   `json:"running"`
	Total    int64 `json:"total"`
}

type Task

type Task struct {
	ID       string
	Fn       func(context.Context) error
	Priority int
	Timeout  time.Duration
}

Task represents a unit of work to be executed by the pool.

type TaskResult

type TaskResult struct {
	TaskID   string
	Error    error
	Duration time.Duration
}

TaskResult holds the result of a task execution.

Jump to

Keyboard shortcuts

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