mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2025-02-09 16:12:28 +00:00
29 lines
876 B
Go
29 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
|
||
|
}
|