func NewBackgroundHeartbeat(natsClient diegonats.NATSClient, natsAddress, natsUsername, natsPassword string, logger lager.Logger, registration RegistryMessage) ifrit.RunFunc { return func(signals <-chan os.Signal, ready chan<- struct{}) error { restarter := restart.Restarter{ Runner: newBackgroundGroup(natsClient, natsAddress, natsUsername, natsPassword, logger, registration), Load: func(runner ifrit.Runner, err error) ifrit.Runner { return newBackgroundGroup(natsClient, natsAddress, natsUsername, natsPassword, logger, registration) }, } // don't wait, start this thing in the background close(ready) return restarter.Run(signals, make(chan struct{})) } }