shezmu/example/main.go

44 lines
783 B
Go

package main
import (
"flag"
"io/ioutil"
"log"
"os"
"os/signal"
"strings"
"github.com/localhots/satan"
"github.com/localhots/satan/example/daemons"
)
func main() {
var debug bool
var brokers string
flag.BoolVar(&debug, "v", false, "Verbose mode")
flag.StringVar(&brokers, "brokers", "127.0.0.1:9092", "Kafka broker addresses (separated by space)")
flag.Parse()
log.SetOutput(ioutil.Discard)
if debug {
log.SetOutput(os.Stderr)
}
loadConsumerConfig()
initKafka(strings.Split(brokers, " "))
defer shutdownKafka()
s := satan.Summon()
s.SubscribeFunc = makeStream
s.AddDaemon(&daemons.NumberPrinter{})
s.AddDaemon(&daemons.PriceConsumer{})
s.StartDaemons()
defer s.StopDaemons()
sig := make(chan os.Signal)
signal.Notify(sig, os.Interrupt)
<-sig
}