Documentation ¶
Overview ¶
package redis implements a lightweight queue on top of RPOPLPUSH for hydrocarbon to use
Index ¶
- type Queue
- func (q *Queue) CompleteScrape(ctx context.Context, scrapeID uuid.UUID) error
- func (q *Queue) Error(ctx context.Context, task *discollect.QueuedTask) error
- func (q *Queue) Finish(ctx context.Context, task *discollect.QueuedTask) error
- func (q *Queue) Pop(ctx context.Context) (*discollect.QueuedTask, error)
- func (q *Queue) Push(ctx context.Context, tasks []*discollect.QueuedTask) error
- func (q *Queue) Status(ctx context.Context, scrapeID uuid.UUID) (*discollect.ScrapeStatus, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Queue ¶
type Queue struct {
// contains filtered or unexported fields
}
Queue implements discollect.Queue using a redis reliable queue
func (*Queue) CompleteScrape ¶
DELETE scrapeid FROM active_scrape_ids
func (*Queue) Error ¶
func (q *Queue) Error(ctx context.Context, task *discollect.QueuedTask) error
Error retries a given task INCR retries_counter LREM inflight-tasks DECR inflight_counter LPUSH tasks
func (*Queue) Finish ¶
func (q *Queue) Finish(ctx context.Context, task *discollect.QueuedTask) error
Finish marks a task as fully complete INCR scrapeid_complete LREM from scrapeid_inflight_tasks
func (*Queue) Pop ¶
func (q *Queue) Pop(ctx context.Context) (*discollect.QueuedTask, error)
Pop pops a task off any active queue SRANDMEMBER active_scrape_ids RPOPLPUSH from scrapeid_tasks to scrapeid_inflight_tasks INCR scrapeid_inflight
func (*Queue) Push ¶
func (q *Queue) Push(ctx context.Context, tasks []*discollect.QueuedTask) error
Push adds a slice of tasks onto the queue SADD scrapeid to active_scrape_ids INCR scrapeid_total LPUSH onto 'scrapeid_tasks'
func (*Queue) Status ¶
func (q *Queue) Status(ctx context.Context, scrapeID uuid.UUID) (*discollect.ScrapeStatus, error)
Status returns the status of a given scrape