-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathqueue.go
28 lines (25 loc) · 947 Bytes
/
queue.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package taurus
import "time"
// Subscription is a TaskQueue topic subscription
type Subscription interface {
// ReadTask waits for some time to read Task from TaskQueue
ReadTask(time.Duration) (*Task, error)
// AutoUnsubscribe automatically unsubscribes from Subscription once some
// number of messages have been received
AutoUnsubscribe(int) error
// Unsubscribe unsubscribes from Subscription
Unsubscribe() error
// TimedOut checks if the error returned from Subscription read means TaskQueue timed out
TimedOut(error) bool
// Closed checks if the error returned from Subscription read means TaskQueue is Closed
Closed(error) bool
}
// TaskQueue is a generic queue for taurus.Tasks
type TaskQueue interface {
// Publish publishes data to a TaskQueue
Publish(string, *Task) error
// Subscribe subscribes to a given topic and returns Subscription
Subscribe(string) (Subscription, error)
// Close closes the TaskQeue
Close()
}