+ wg := new(sync.WaitGroup)
+
+ // add two goroutines to `wg` WaitGroup, one for each running go routine
+ wg.Add(2)
+
+ log.Debugf("Starting callback server at port %v", configuration.InfoProducerPort)
+ go func() {
+ http.HandleFunc(server.StatusCallbackPath, server.StatusHandler)
+ http.HandleFunc(server.JobsCallbackPath, server.CreateInfoJobHandler)
+ log.Warn(http.ListenAndServe(fmt.Sprintf(":%v", configuration.InfoProducerPort), nil))
+ wg.Done()
+ }()
+
+ go func() {
+ jobs.RunJobs(fmt.Sprintf("%v:%v", configuration.MRHost, configuration.MRPort))
+ wg.Done()
+ }()
+
+ // wait until WaitGroup is done
+ wg.Wait()
+ log.Debug("Stopping DMaaP Mediator Producer")