shezmu/example/main.go

46 lines
949 B
Go
Raw Normal View History

2015-10-14 03:34:59 +03:00
package main
import (
"flag"
"os"
"os/signal"
"strings"
2015-10-14 03:34:59 +03:00
2015-10-14 03:50:43 +03:00
"github.com/localhots/satan"
"github.com/localhots/satan/example/daemons"
"github.com/localhots/satan/example/kafka"
2015-10-28 01:23:39 +03:00
"github.com/localhots/satan/server"
2015-10-24 02:42:00 +03:00
"github.com/localhots/satan/stats"
2015-10-14 03:34:59 +03:00
)
func main() {
var brokers string
flag.StringVar(&brokers, "brokers", "127.0.0.1:9092", "Kafka broker addresses separated by space")
2015-10-14 03:34:59 +03:00
flag.Parse()
kafka.Initialize(strings.Split(brokers, " "))
defer kafka.Shutdown()
2015-10-24 19:25:16 +03:00
statsLogger := stats.NewStdoutLogger(0)
defer statsLogger.Print()
2015-10-24 02:42:00 +03:00
2015-10-28 01:23:39 +03:00
statsServer := stats.NewServer()
server := server.New(6464, statsServer)
server.Start()
2015-10-14 03:50:43 +03:00
s := satan.Summon()
2015-10-17 04:11:29 +03:00
s.SubscribeFunc = kafka.Subscribe
2015-10-28 01:23:39 +03:00
s.DaemonStats = stats.NewGroup(statsLogger, statsServer)
2015-10-24 02:42:00 +03:00
2015-10-14 03:50:43 +03:00
s.AddDaemon(&daemons.NumberPrinter{})
s.AddDaemon(&daemons.PriceConsumer{})
2015-10-14 04:11:29 +03:00
s.StartDaemons()
defer s.StopDaemons()
2015-10-14 03:34:59 +03:00
sig := make(chan os.Signal)
2015-10-14 03:36:23 +03:00
signal.Notify(sig, os.Interrupt)
<-sig
2015-10-14 03:34:59 +03:00
}