add http health checks.

@bgrant0607 Since this function itself will be called within a separate goroutine, so it won't block other goroutines unless they need the results from this function (in this case, they will be blocked even if it is async.)

One approach to avoid the problem you mentioned is to start one goroutine per iteration. WDYT?