func srv(ctx *cli.Context) { service := micro.NewService( micro.Name("go.micro.srv.config"), micro.RegisterTTL( time.Duration(ctx.GlobalInt("register_ttl"))*time.Second, ), micro.RegisterInterval( time.Duration(ctx.GlobalInt("register_interval"))*time.Second, ), ) if len(ctx.GlobalString("database_url")) > 0 { mysql.Url = ctx.GlobalString("database_url") } proto.RegisterConfigHandler(service.Server(), new(handler.Config)) // subcriber to watches service.Server().Subscribe(service.Server().NewSubscriber(config.WatchTopic, config.Watcher)) if err := config.Init(); err != nil { log.Fatal(err) } if err := db.Init(); err != nil { log.Fatal(err) } if err := service.Run(); err != nil { log.Fatal(err) } }
func main() { service := micro.NewService( micro.Name("go.micro.srv.config"), micro.Version("latest"), micro.Flags( cli.StringFlag{ Name: "database_url", EnvVar: "DATABASE_URL", Usage: "The database URL e.g root@tcp(127.0.0.1:3306)/trace", }, ), // Add for MySQL configuration micro.Action(func(c *cli.Context) { if len(c.String("database_url")) > 0 { mysql.Url = c.String("database_url") } }), ) service.Init() proto.RegisterConfigHandler(service.Server(), new(handler.Config)) // subcriber to watches service.Server().Subscribe(service.Server().NewSubscriber(config.WatchTopic, config.Watcher)) if err := config.Init(); err != nil { log.Fatal(err) } if err := db.Init(); err != nil { log.Fatal(err) } if err := service.Run(); err != nil { log.Fatal(err) } }