Documentation
¶
Index ¶
- type InMemoryQueue
- func (q *InMemoryQueue) Close() error
- func (q *InMemoryQueue) Complete(ctx context.Context, taskID string) error
- func (q *InMemoryQueue) Dequeue(ctx context.Context) (*ScanTask, error)
- func (q *InMemoryQueue) Enqueue(ctx context.Context, task *ScanTask) error
- func (q *InMemoryQueue) Fail(ctx context.Context, taskID string, err error) error
- func (q *InMemoryQueue) GetMetrics() QueueMetrics
- func (q *InMemoryQueue) GetQueueDepth(ctx context.Context) (int, error)
- type QueueMetrics
- type ScanTask
- type TaskQueue
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) 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
Click to show internal directories.
Click to hide internal directories.