2022-02-10 22:06:57 +00:00
|
|
|
//go:build !change
|
2020-03-26 17:42:29 +00:00
|
|
|
|
|
|
|
package pubsub
|
|
|
|
|
|
|
|
import "context"
|
|
|
|
|
|
|
|
// MsgHandler is a callback function that processes messages delivered to subscribers.
|
|
|
|
type MsgHandler func(msg interface{})
|
|
|
|
|
|
|
|
type Subscription interface {
|
|
|
|
// Unsubscribe will remove interest in the given subject.
|
|
|
|
Unsubscribe()
|
|
|
|
}
|
|
|
|
|
|
|
|
type PubSub interface {
|
|
|
|
// Subscribe creates an asynchronous queue subscriber on the given subject.
|
|
|
|
Subscribe(subj string, cb MsgHandler) (Subscription, error)
|
|
|
|
|
|
|
|
// Publish publishes the msg argument to the given subject.
|
|
|
|
Publish(subj string, msg interface{}) error
|
|
|
|
|
|
|
|
// Close will shutdown pub-sub system.
|
|
|
|
// May be blocked by data delivery until the context is canceled.
|
|
|
|
Close(ctx context.Context) error
|
|
|
|
}
|