Documentation ¶
Index ¶
Constants ¶
const (
ErrNotYetStarted errors.ErrorCode = "NOT_STARTED"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { Workers int `json:"workers" pflag:",Number of concurrent workers to start processing the queue."` MaxRetries int `json:"maxRetries" pflag:",Maximum number of retries per item."` IndexCacheMaxItems int `json:"maxItems" pflag:",Maximum number of entries to keep in the index."` }
Config for the queue
type IndexedWorkQueue ¶
type IndexedWorkQueue interface { // Queues the item to be processed. If the item is already in the cache or has been processed before (and is still // in-memory), it'll not be added again. Queue(ctx context.Context, id WorkItemID, once WorkItem) error // Retrieves an item by id. Get(id WorkItemID) (info WorkItemInfo, found bool, err error) // Start must be called before queuing items into the queue. Start(ctx context.Context) error }
Represents the indexed queue semantics. An indexed work queue is a work queue that additionally keeps track of the final processing results of work items.
func NewIndexedWorkQueue ¶
func NewIndexedWorkQueue(name string, processor Processor, cfg Config, metricsScope promutils.Scope) (IndexedWorkQueue, error)
Instantiates a new Indexed Work queue.
type Processor ¶
type Processor interface {
Process(ctx context.Context, workItem WorkItem) (WorkStatus, error)
}
Represents the processor logic to operate on work items.
type WorkItem ¶
type WorkItem interface{}
WorkItem is a generic item that can be stored in the work queue.
type WorkItemID ¶
type WorkItemID = string
type WorkItemInfo ¶
type WorkItemInfo interface { Item() WorkItem ID() WorkItemID Status() WorkStatus Error() error }
Represents the result of the work item processing.
type WorkStatus ¶
type WorkStatus uint8
const ( WorkStatusNotDone WorkStatus = iota WorkStatusSucceeded WorkStatusFailed )
func WorkStatusString ¶
func WorkStatusString(s string) (WorkStatus, error)
WorkStatusString retrieves an enum value from the enum constants string name. Throws an error if the param is not part of the enum.
func WorkStatusValues ¶
func WorkStatusValues() []WorkStatus
WorkStatusValues returns all values of the enum
func (WorkStatus) IsAWorkStatus ¶
func (i WorkStatus) IsAWorkStatus() bool
IsAWorkStatus returns "true" if the value is listed in the enum definition. "false" otherwise
func (WorkStatus) IsTerminal ¶
func (w WorkStatus) IsTerminal() bool
func (WorkStatus) String ¶
func (i WorkStatus) String() string