mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2025-02-03 21:22:25 +00:00
28 lines
876 B
Go
28 lines
876 B
Go
package queue
|
|
|
|
type Queue interface {
|
|
// Publish inserts work at the tail of this queue, waiting for
|
|
// space to become available if the queue is full.
|
|
Publish(*Work) error
|
|
|
|
// Remove removes the specified work item from this queue,
|
|
// if it is present.
|
|
Remove(*Work) error
|
|
|
|
// Pull retrieves and removes the head of this queue, waiting
|
|
// if necessary until work becomes available.
|
|
Pull() *Work
|
|
|
|
// PullAck retrieves and removes the head of this queue, waiting
|
|
// if necessary until work becomes available. Items pull from the
|
|
// queue that aren't acknowledged will be pushed back to the queue
|
|
// again when the default acknowledgement deadline is reached.
|
|
PullAck() *Work
|
|
|
|
// Ack acknowledges an item in the queue was processed.
|
|
Ack(*Work) error
|
|
|
|
// Items returns a slice containing all of the work in this
|
|
// queue, in proper sequence.
|
|
Items() []*Work
|
|
}
|