func main() { flag.Parse() configureLog() // Load configuration conf, err := configuration.FromFile(configFilePath) if err != nil { log.Fatal(err) } eventBus := event_bus.New() // Create StatsD client conf.StatsD.CreateClient() // Create Zookeeper connection zkConn := listenToZookeeper(conf, eventBus) // Register handlers handlers := event_bus.Handlers{Conf: &conf, Zookeeper: zkConn} eventBus.Register(handlers.MarathonEventHandler) eventBus.Register(handlers.ServiceEventHandler) // Start server initServer(&conf, zkConn, eventBus) }
func main() { flag.Parse() configureLog() // Load configuration conf, err := configuration.FromFile(configFilePath) if err != nil { log.Fatal(err) } eventBus := event_bus.New() // Wait for died children to avoid zombies signalChannel := make(chan os.Signal, 2) signal.Notify(signalChannel, os.Interrupt, syscall.SIGCHLD) go func() { for { sig := <-signalChannel if sig == syscall.SIGCHLD { r := syscall.Rusage{} syscall.Wait4(-1, nil, 0, &r) } } }() // Create StatsD client conf.StatsD.CreateClient() // Create Zookeeper connection zkConn := listenToZookeeper(conf, eventBus) // Create the storage backend storage, err := service.NewZKStorage(zkConn, conf.Bamboo.Zookeeper) if err != nil { log.Panicf("Failed to create ZK storage: %v", err) } appStorage, err := application.NewZKStorage(zkConn, conf.Bamboo.Zookeeper) if err != nil { log.Panicf("Failed to create application ZK storage: %v", err) } // Register handlers handlers := event_bus.Handlers{Conf: &conf, Storage: storage, AppStorage: appStorage} eventBus.Register(handlers.MarathonEventHandler) eventBus.Register(handlers.ServiceEventHandler) eventBus.Register(handlers.WeightEventHandler) eventBus.Publish(event_bus.MarathonEvent{EventType: "bamboo_startup", Timestamp: time.Now().Format(time.RFC3339)}) // Handle gracefully exit registerOSSignals() // load config api.LoadConfig(conf) // Start server initServer(&conf, storage, appStorage, eventBus) }
func main() { config, err := conf.FromFile(configFilePath) if err != nil { panic(err) } evts, quit := qzk.ListenToZooKeeper(config.Bamboo.Zookeeper, true) go showEvents(evts) reader := bufio.NewReader(os.Stdin) _, _ = reader.ReadString('\n') quit <- true fmt.Printf("exiting!\n") }
func main() { flag.Parse() configureLog() // Load configuration conf, err := configuration.FromFile(configFilePath) if err != nil { log.Fatal(err) } eventBus := event_bus.New() // Wait for died children to avoid zombies signalChannel := make(chan os.Signal, 2) signal.Notify(signalChannel, os.Interrupt, syscall.SIGCHLD) go func() { for { sig := <-signalChannel if sig == syscall.SIGCHLD { r := syscall.Rusage{} syscall.Wait4(-1, nil, 0, &r) } } }() // Create StatsD client conf.StatsD.CreateClient() // Create Zookeeper connection zkConn := listenToZookeeper(conf, eventBus) // Register handlers handlers := event_bus.Handlers{Conf: &conf, Zookeeper: zkConn} eventBus.Register(handlers.MarathonEventHandler) eventBus.Register(handlers.ServiceEventHandler) eventBus.Publish(event_bus.MarathonEvent{EventType: "bamboo_startup", Timestamp: time.Now().Format(time.RFC3339)}) // Handle gracefully exit registerOSSignals() // Start server initServer(&conf, zkConn, eventBus) }