in elastictransport/discovery.go [216:227]
func (c *Client) scheduleDiscoverNodes(d time.Duration) {
go c.DiscoverNodes()
c.Lock()
defer c.Unlock()
if c.discoverNodesTimer != nil {
c.discoverNodesTimer.Stop()
}
c.discoverNodesTimer = time.AfterFunc(c.discoverNodesInterval, func() {
c.scheduleDiscoverNodes(c.discoverNodesInterval)
})
}