queue

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Nov 18, 2025 License: GPL-3.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type InMemoryQueue

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

InMemoryQueue implements TaskQueue using Go channels

func NewInMemoryQueue

func NewInMemoryQueue(bufferSize int) *InMemoryQueue

NewInMemoryQueue creates a new in-memory task queue

func (*InMemoryQueue) Close

func (q *InMemoryQueue) Close() error

Close shuts down the queue gracefully

func (*InMemoryQueue) Complete

func (q *InMemoryQueue) Complete(ctx context.Context, taskID string) error

Complete marks a task as successfully processed

func (*InMemoryQueue) Dequeue

func (q *InMemoryQueue) Dequeue(ctx context.Context) (*ScanTask, error)

Dequeue retrieves a task for processing (blocking)

func (*InMemoryQueue) Enqueue

func (q *InMemoryQueue) Enqueue(ctx context.Context, task *ScanTask) error

Enqueue adds a task to the queue with deduplication

func (*InMemoryQueue) Fail

func (q *InMemoryQueue) Fail(ctx context.Context, taskID string, err error) error

Fail marks a task as failed

func (*InMemoryQueue) GetMetrics

func (q *InMemoryQueue) GetMetrics() QueueMetrics

GetMetrics returns a copy of current metrics

func (*InMemoryQueue) GetQueueDepth

func (q *InMemoryQueue) GetQueueDepth(ctx context.Context) (int, error)

GetQueueDepth returns current queue size

type QueueMetrics

type QueueMetrics struct {
	Enqueued  int64
	Dequeued  int64
	Completed int64
	Failed    int64
	Dropped   int64 // Dropped due to deduplication
}

QueueMetrics tracks queue operation statistics

type ScanTask

type ScanTask struct {
	ID          string
	Repository  string
	Digest      string
	Tag         string
	EnqueuedAt  time.Time
	Attempts    int
	IsRescan    bool
	Tolerations []types.CVEToleration // Using canonical type from internal/types
}

ScanTask represents a container image scanning task

type TaskQueue

type TaskQueue interface {
	// Enqueue adds a task to the queue
	Enqueue(ctx context.Context, task *ScanTask) error

	// Dequeue retrieves a task for processing (blocking)
	Dequeue(ctx context.Context) (*ScanTask, error)

	// Complete marks a task as successfully processed (for metrics/logging)
	Complete(ctx context.Context, taskID string) error

	// Fail marks a task as failed (for metrics/logging)
	Fail(ctx context.Context, taskID string, err error) error

	// GetQueueDepth returns current queue size
	GetQueueDepth(ctx context.Context) (int, error)

	// Close shuts down the queue gracefully
	Close() error
}

TaskQueue manages a queue of scan tasks for container images

Jump to

Keyboard shortcuts

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