1
0
Fork 0

Add example consumer

This commit is contained in:
Gregory Eremin 2015-10-16 02:35:03 +03:00
parent f784e8a2e0
commit d0ff12ce64
1 changed files with 28 additions and 0 deletions

View File

@ -0,0 +1,28 @@
package daemons
import (
"log"
"github.com/localhots/satan"
)
// PriceConsumer consumes price update messages and prints them to the console.
type PriceConsumer struct {
satan.BaseConsumer
}
// PriceUpdate describes a price update message.
type PriceUpdate struct {
Product string `json:"product"`
Amount float64 `json:"amount"`
}
// Startup creates a new subscription for ProductPriceUpdates topic.
func (p *PriceConsumer) Startup() {
b.Subscribe("ProductPriceUpdates", func(u PriceUpdate) {
log.Printf("Price for %q is now $%.2f", u.Product, u.Amount)
})
}
// Shutdown is empty because PriceConsumer requires no cleanup upon exiting.
func (p *PriceConsumer) Shutdown() {}