Documentation
¶
Overview ¶
Package inmem provides an in-memory workqueue implementation intended for testing.
The in-memory workqueue is not suitable for production use — it does not persist state across restarts and does not support distributed deployments. Use it in tests alongside the conformance package to verify workqueue consumer behavior.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewWorkQueue ¶
NewWorkQueue creates a new in-memory workqueue. This is intended for testing, and is not suitable for production use.
Example ¶
ExampleNewWorkQueue demonstrates creating an in-memory workqueue and performing basic queue and enumerate operations.
package main
import (
"context"
"fmt"
"chainguard.dev/driftlessaf/workqueue"
"chainguard.dev/driftlessaf/workqueue/inmem"
)
func main() {
wq := inmem.NewWorkQueue(5)
ctx := context.Background()
if err := wq.Queue(ctx, "my-key", workqueue.Options{}); err != nil {
panic(err)
}
_, queued, _, err := wq.Enumerate(ctx)
if err != nil {
panic(err)
}
fmt.Printf("Queued keys: %d\n", len(queued))
}
Output: Queued keys: 1
Types ¶
type Option ¶ added in v0.10.19
type Option func(*wq)
Option configures an in-memory workqueue created by NewWorkQueue.
func WithIdentity ¶ added in v0.10.19
WithIdentity sets the identity recorded on each in-progress key this queue starts. Defaults to "", which records nothing.
func WithTenant ¶ added in v0.11.63
func WithTenant(fn workqueue.TenantFunc) Option
WithTenant orders the keys of each priority fairly across the tenants fn assigns them to (see workqueue.TenantSelector), and makes the keys this queue enumerates implement workqueue.TenantKey.