func main() { service := micro.NewService( micro.Name("go.micro.srv.event"), micro.Flags( cli.StringFlag{ Name: "database_url", EnvVar: "DATABASE_URL", Usage: "The database URL e.g root@tcp(127.0.0.1:3306)/event", }, ), micro.Action(func(c *cli.Context) { if len(c.String("database_url")) > 0 { mysql.Url = c.String("database_url") } }), ) service.Init() proto.RegisterEventHandler(service.Server(), new(handler.Event)) service.Server().Subscribe( service.Server().NewSubscriber( "micro.event.record", event.Process, server.SubscriberQueue("event-srv"), ), ) // For watchers service.Server().Subscribe( service.Server().NewSubscriber( "micro.event.record", event.Stream, ), ) if err := db.Init(); err != nil { log.Fatal(err) } if err := service.Run(); err != nil { log.Fatal(err) } }
func srv(ctx *cli.Context) { service := micro.NewService( micro.Name("go.micro.srv.event"), 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.RegisterEventHandler(service.Server(), new(handler.Event)) service.Server().Subscribe( service.Server().NewSubscriber( "micro.event.record", event.Process, server.SubscriberQueue("event-srv"), ), ) // For watchers service.Server().Subscribe( service.Server().NewSubscriber( "micro.event.record", event.Stream, ), ) if err := db.Init(); err != nil { log.Fatal(err) } if err := service.Run(); err != nil { log.Fatal(err) } }