func initializeAuctionRunner(logger lager.Logger, cellStateTimeout time.Duration, bbsClient bbs.Client, serviceClient bbs.ServiceClient) auctiontypes.AuctionRunner { httpClient := cf_http.NewClient() stateClient := cf_http.NewCustomTimeoutClient(cellStateTimeout) repClientFactory := rep.NewClientFactory(httpClient, stateClient) delegate := auctionrunnerdelegate.New(repClientFactory, bbsClient, serviceClient, logger) metricEmitter := auctionmetricemitterdelegate.New() workPool, err := workpool.NewWorkPool(*auctionRunnerWorkers) if err != nil { logger.Fatal("failed-to-construct-auction-runner-workpool", err, lager.Data{"num-workers": *auctionRunnerWorkers}) // should never happen } return auctionrunner.New( delegate, metricEmitter, clock.NewClock(), workPool, logger, ) }
cell := cell workPool.Submit(func() { cell.Reset() wg.Done() }) } wg.Wait() util.ResetGuids() runnerDelegate = NewAuctionRunnerDelegate(cells) metricEmitterDelegate := NewAuctionMetricEmitterDelegate() runner = auctionrunner.New( runnerDelegate, metricEmitterDelegate, clock.NewClock(), workPool, logger, ) runnerProcess = ifrit.Invoke(runner) }) var _ = AfterEach(func() { runnerProcess.Signal(os.Interrupt) Eventually(runnerProcess.Wait(), 20).Should(Receive()) workPool.Stop() }) var _ = AfterSuite(func() { if !disableSVGReport { finishReport()