package common import ( "log" "time" "github.com/nats-io/go-nats" ) func NatsConnect(u string) (*nats.Conn, error) { var ( nc *nats.Conn err error ) for i := 0; i < 5; i++ { nc, err = nats.Connect(u) if err == nil { break } log.Printf("sleeping 5 seconds to try again, got error connecting to %s: %v", u, err) time.Sleep(5 * time.Second) } if err != nil { return nil, err } return nc, nil }