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{})) } }
package restart_test import ( "os" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/tedsuo/ifrit" "github.com/tedsuo/ifrit/fake_runner" "github.com/tedsuo/ifrit/restart" ) var _ = Describe("Restart", func() { var testRunner *fake_runner.TestRunner var restarter restart.Restarter var process ifrit.Process BeforeEach(func() { testRunner = fake_runner.NewTestRunner() restarter = restart.Restarter{ Runner: testRunner, Load: func(runner ifrit.Runner, err error) ifrit.Runner { return nil }, } }) JustBeforeEach(func() { process = ifrit.Background(restarter) })